vb.net을 사용하여 텍스트 파일을 읽고 일치하는 레코드가 있는지보고 해당 레코드를 선택하여 쓰기 뛰어나다.vb.net - r.peek()> = 0 line = r.readline()
그러나 peek 루프를 사용하면 파일이 끝날 때까지 파일을 읽습니다. 나는 2 peek loop를 가지고있다. - outer peek loop는 아이템을 찾는다. inner loop search는 그것을 찾는다.
peek 루프를 중지하고 외부 루프가 멈출 수 있습니까? 이것은 나의 코드 예제이다. 두 외부의 for 루프를 수행하여 외부 루프가 멈추는 위치에서 검색 루프를 계속 진행합니다. 감사합니다
For i = 1 To t_idex
rder.BaseStream.Seek(0, IO.SeekOrigin.Begin)
rder.DiscardBufferedData()
Do While rder.Peek() >= 0
line = rder.ReadLine()
r_idx += 1
st_outer += 1
m = Mid(line, 3, 7)
P = Mid(line, 19, 7)
b= Trim(Mid(line, 34, 14))
If Len(b) = 14 Then
Do While rder.Peek() >= 0
line2 = rder.ReadLine()
m2 = Mid(line2, 3, 7)
P2 = Mid(line2, 19, 7)
b2 = Trim(Mid(line2, 34, 14))
If b = b2 Then
cnt_dups += 1
End If
r_idx += 1
Loop
End If
i = st_outer
Loop
Next
당신이 더 나은 당신이 원하는 것을 설명 할 수를 달성하기 위해 이리? 뭔가를 찾는 코드는 어디에 있습니까? 내부 루프는 파일의 끝까지 읽을 contine, 당신이 뭔가를 찾으면 그 루프를 중지하는 조건이 없습니다. – Steve
왜 이렇게 복잡합니까? 한 줄을 읽고, 원하는 줄인지, 길을 빠져 나왔는지, 파일 끝에 도달 할 때까지보십시오. – dbasnett
@steve 코드를 업데이트했습니다. 바깥 쪽 루프는 b의 len이 14이고, 안쪽 루프로 들어가고, 바깥 쪽 루프가 b의 len을 찾는 곳에서 전체 파일을 반복하고, b가 b2에 일치하는 경우 두 레코드를 모두 씁니다 엑셀 (아직 코드를 업데이트하지 않음). 파일 끝까지이 작업을 수행하십시오. 그 시점 이후에 일어나는 일은 바깥 루프로 가서 중단 된 위치에서 멈추고 외부 루프가 eof로 완료 될 때까지 다음 검색을 수행하고 이상적으로 수행되어야 할 때 두 루프에서 모두 실행되고 완전히 종료된다는 것입니다. 당신이 무슨 뜻인지 알기를 바랍니다. – Johnseito