Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
line input problem-need to return 5 lines after a string is found
I've been tinkering with this for a few hours and can't seem to get it
to work correctly. I'm using line input to go through each line looking for a string. When the string is found, i want to return the line it came from, and the 4 lines below it. Would this be easier with an array? Or do I just have the loop/for sequencing wrong? sub return5lines () dim filename as sstring = "C:\myfile.txt" dim strdata as string dim texttofind as string = "my text" Open filename For Input As #1 Do Until EOF(1) Line Input #1, strdata If InStr(1, strdata, texttofind) Then i = 1 End If For i = 1 To 5 ActiveSheet.Range("a" & i) = strdata i = i + 1 Loop Close #1 end sub |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
line input problem-need to return 5 lines after a string is found
sub return5lines ()
dim filename as sstring = "C:\myfile.txt" dim strdata as string dim texttofind as string = "my text" Open filename For Input As #1 Do Until EOF(1) Line Input #1, strdata If InStr(1, strdata, texttofind) Then For i = 1 To 5 ActiveSheet.Range("a" & i) = strdata Line Input #1, strDate next exit do end if Loop Close #1 end sub -- Regards, Tom Ogilvy "festdaddy" wrote in message oups.com... I've been tinkering with this for a few hours and can't seem to get it to work correctly. I'm using line input to go through each line looking for a string. When the string is found, i want to return the line it came from, and the 4 lines below it. Would this be easier with an array? Or do I just have the loop/for sequencing wrong? sub return5lines () dim filename as sstring = "C:\myfile.txt" dim strdata as string dim texttofind as string = "my text" Open filename For Input As #1 Do Until EOF(1) Line Input #1, strdata If InStr(1, strdata, texttofind) Then i = 1 End If For i = 1 To 5 ActiveSheet.Range("a" & i) = strdata i = i + 1 Loop Close #1 end sub |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
line input problem-need to return 5 lines after a string is found
try this Code ------------------- sub return5lines () dim filename as sstring = "C:\myfile.txt" dim texttofind as string = "my text" dim output() as string, count as long, I as integer I = 6 Open filename For Input As #1 Do Until EOF(1) Line Input #1, strdata If InStr(1, strdata, texttofind) or I < 5 Then count = count + 1 Redim Preserve output(count) output(count)=strdata If InStr(1, strdata, texttofind) then I = 1 Else I = I + 1 End If Loop Close #1 Range("A1").select Range(Selection, Selection.Offset(count, 0)).Select Selection.Name = "OutputData" [OutputData]=Application.Worksheetfunction.transpose(output) end su ------------------- -- Lauri ----------------------------------------------------------------------- Laurin's Profile: http://www.excelforum.com/member.php...fo&userid=2683 View this thread: http://www.excelforum.com/showthread.php?threadid=49184 |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
line input problem-need to return 5 lines after a string is found
Thanks Tom!
|
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Problem with custom line chart, lines with two axes | Charts and Charting in Excel | |||
URGENT -- search in string for a value in another column, if found, return value from next column | Excel Programming | |||
Marking all lines with same value when a second value is found | Excel Discussion (Misc queries) | |||
Search column - return row found in long text string | Excel Programming | |||
Reads entire *.txt file into string opposed to a desired line by line input. | Excel Programming |