2014-05-13 4 views
-5

저는 everyline의 처음 8자를 비교하는 데 필요한 텍스트 파일을 가지고 있으며 일치하는 행이 하나의 행으로 합쳐집니다. 내가 사용한 논리는 다음으로 시작하는 각 행을 선택하는 것입니다. 첫 번째와 나머지 라인 비교, 두 번째 라인으로 이동하고 마지막 line.but 때까지 나는 비교를 위해 다른 라인을 통해 루프를하려고 오류 "인덱스 및 길이를 참조해야합니다까지 위치를 참조해야합니다 문자열 내에서 ".는 텍스트 파일의 문자열을 비교합니다

아래 코드를 참조하십시오. 당신이 Substring를 사용하기 전에

while ((line1 = fileread.ReadLine()) != null) 
{ 
    counter2++; 

    while ((line2 =fileread.ReadLine()) != null) 
    {       
     if (line1.Substring(0, 8) == line2.Substring(0, 8)) 
     { 
      line1 = line1 + " " + line2; 
     } 
     counter3++; 
    }      

    filewrite.WriteLine(line1); 
    counter1++; 
} 
+5

힌트 : 줄이 8 자 미만인 경우 어떻게됩니까? – Rik

+0

문자열의 Length 속성을 확인하십시오 ... – rene

+0

Hint2 : 버퍼를 사용하십시오. 읽은 동일한 루프의 파일에 쓰지 마십시오. 그렇지 않으면 예기치 않은 결과가 발생할 수 있습니다. –

답변

0

당신은 Length 속성을 사용 인트 문자열의 길이를 확인해야합니다.

while ((line2 =fileread.ReadLine()) != null) 
{   
    if (line1.Length >=8 && lines2.Length >=8 && 
     line1.Substring(0, 8) == line2.Substring(0, 8)) 
    { 
     line1 = line1 + " " + line2; 
    } 
    counter3++; 
}   
+0

감사합니다. 길이가 문제였습니다. –

관련 문제