View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.misc
Dave Peterson
 
Posts: n/a
Default Extract from a file

Instead of getting one character at a time, you can retrieve a whole line:

Option Explicit
Sub testme01()

Dim myLine As String
Dim myFileName As String
Dim FileNum As Long
Dim lCtr As Long
Dim KeepThisLine As String

myFileName = "C:\my documents\excel\test.txt"

FileNum = FreeFile

If Dir(myFileName) = "" Then 'not found
MsgBox "File is missing!"
Exit Sub
Else
Close FileNum
Open myFileName For Input As FileNum
lCtr = 0
KeepThisLine = ""
Do While Not EOF(FileNum)
Line Input #FileNum, myLine
lCtr = lCtr + 1
If lCtr = 3 Then
KeepThisLine = myLine
Exit Do
End If
Loop
Close FileNum

If lCtr < 3 Then
MsgBox "not enough lines"
Else
MsgBox KeepThisLine
End If
End If

End Sub

kkjensen wrote:

The Excel VBA helpfile has the following code for extracting a character
from the beginning of a textfile. If I change the parameters to
inputs(5,#1) it will extract the first 5 characters of the file.

Code:
--------------------

Dim MyChar
Open "TESTFILE" For Input As #1 ' Open file.
Do While Not EOF(1) ' Loop until end of file.
MyChar = Input(1, #1) ' Get one character.
Debug.Print MyChar ' Print to the Immediate window.
Loop
Close #1 ' Close file.



--------------------

I have a very big textfile and don't want to start my string from the
beginning. Is there a way to get the INPUT function (or another) to
read data out of the middle of a text file? Lets say I want just line
3.

Another problem: I would like to get just one line...how do I detect
the end of the line?

--
kkjensen
------------------------------------------------------------------------
kkjensen's Profile: http://www.excelforum.com/member.php...o&userid=35911
View this thread: http://www.excelforum.com/showthread...hreadid=557043


--

Dave Peterson