Extract from a file

K

kkjensen

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?
 
D

Dave Peterson

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top