View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
losmac[_2_] losmac[_2_] is offline
external usenet poster
 
Posts: 44
Default read last line of a file

If You write to a file in Random mode, You can use Seek
statement to find last record.
For example:

Type Record ' Define user-defined type.
ID As Integer
Name As String * 20
End Type

Dim MyRecord As Record, MaxSize, RecordNumber ' Declare
variables.
' Open file in random-file mode.
Open "TESTFILE" For Random As #1 Len = Len(MyRecord)
MaxSize = LOF(1) \ Len(MyRecord) ' Get number of records
in file.
' The loop reads all records starting from the last.
For RecordNumber = MaxSize To MaxSize - 1
Seek #1, RecordNumber ' Set position.
Get #1, , MyRecord ' Read last record.
Next RecordNumber
Close #1 ' Close file.

But, if You use other mode to read data in text file, I
don't know best way to do this. Try it:

Function ReadLastLine(fName As String) As String
Dim fNum As Long
Dim strtemp As String

fNum = FreeFile()
Open fName For Input As #fNum
Do While Not EOF(fNum) 'ignore all line, not last
Line Input #fNum, strtemp
Loop
Close #fNum

ReadLastLine = strtemp

End Function




-----Original Message-----
Is there a quick way of reading the last line of a plain

text file
without having to open it and read each line.

I don't think I can use any of the fancy extensions such

as binary mode
or whatever, due to the file being plain text
--
Mike
Please post replies to newsgroup to benefit others
Replace dead spam with ntl world to reply by email
.