ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   read last line of a file (https://www.excelbanter.com/excel-programming/283335-read-last-line-file.html)

Mike[_49_]

read last line of a file
 
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

losmac[_2_]

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
.


Jonas Caspersson

read last line of a file
 
Hi,
Do you know in advance how the files i structured? eg it's created by you,
or is it a standard text file intended to read?
If not intended to read, i stronly recomend to use an other format like
random acccess ilo text mode.
If you still have to use text mode there is no better way than to loop
through the file untill EOF is reported, maybe LineInput might be faster...

/Jonas

"Mike" skrev i meddelandet
...
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




Mike[_49_]

read last line of a file
 
On Sun, 23 Nov 2003 at 01:14:35, Jonas Caspersson (Jonas Caspersson
) wrote:
Do you know in advance how the files i structured? eg it's created by you,
or is it a standard text file intended to read?
If not intended to read, i stronly recomend to use an other format like
random acccess ilo text mode.
If you still have to use text mode there is no better way than to loop
through the file untill EOF is reported, maybe LineInput might be faster...

Just realised the lines in the files are of fixed length - so can use
losmac's method once I have determined the length

I need them to be flat file format for something else that reads those
files
--
Mike
Please post replies to newsgroup to benefit others
Replace dead spam with ntl world to reply by email

Dick Kusleika[_3_]

read last line of a file
 
Mike

Here's a sub I use to do that

Sub finddstamp()

Dim Fname As String, LastLine As String
Dim Fnum As Integer, i As Integer
Dim CarRet As String

Fname = "C:\Dick\Tester\FindLast.doc"
Fnum = FreeFile

Open Fname For Input As Fnum

For i = LOF(Fnum) To 1 Step -1
Seek #Fnum, i
CarRet = Input(1, #Fnum)
If CarRet = vbCr Or CarRet = vbCrLf Then
Line Input #Fnum, LastLine
MsgBox LastLine
Close Fnum
Exit Sub
End If
Next i

End Sub

--
Dick Kusleika
MVP - Excel
www.dicks-clicks.com
Post all replies to the newsgroup.

"Mike" wrote in 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





All times are GMT +1. The time now is 04:52 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com