View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson Dave Peterson is offline
external usenet poster
 
Posts: 35,218
Default Taking two passes at at Text File using Do Until Loops

Couldn't you just keep track to see if the input line should be skipped or
processed.

Dim ProcessThisLine as boolean
dim sData as string

ProcessThisLine = false
Open x For Input As #1
Do While EOF(1)

Line Input #1, sData

if instr(1,sdata,"startkeyword",vbtextcompare) 0 then
processthisline = true
else
if instr(1,sdata,"endkeyword",vbtextcompare) 0 then
processthisline = false
else
if processthisline = true then
'add it to your textbox
end if
end if
end if

Loop

This will exclude the top and bottom indicator lines. I'm not sure if that's
what you want.

(Untested, uncompiled. Watch for typos!)

ExcelMonkey wrote:

I Am loping through a text file. I need to take two passes at the file. When
I exit the first loop I then proceed to the next loop where I want to start
searching the file again from the first line. However the sData variable is
still set to the line where the first loop exited the Do. How do I restart
this? I tried using the "Open x For Input As #1" again in the second loop
but I recieved an error message saying the file was already open.

'First Pass
Open x For Input As #1
Do While EOF(1)
Line Input #1, sData
LineCount = LineCount + 1
If some condition = True Then
Exit Do
End if
Loop

LineCount = 0

'Second Pass
Do While EOF(1)
Line Input #1, sData
LineCount = LineCount + 1
'Do something
Loop

Thanks

EM


--

Dave Peterson