====== Read the Last Lines of a Text File ====== The program works smoothly even on files of twenty thousand lines. It simply read lines, keeping in memory the last N lines. When it reaches the end of the stream, it return the last N lines kept. ' read all the content of a log file and ' put it into a string. function log2str( byval filename, byval lastLines ) dim fso dim file dim lines() dim linenum dim lastWrittenLine dim out set fso = createobject( "scripting.filesystemObject" ) set file = fso.openTextFile( filename ) redim lines(lastLines) linenum = 0 lastWrittenLine = -1 do while not file.atEndOfStream lines( linenum ) = file.readLine lastWrittenLine = linenum linenum = (linenum + 1 ) mod lastLines loop ' not file.atEndOfStream if lastWrittenLine > 0 then linenum = (lastWrittenLine + 1) mod lastLines do if lines(linenum) <> "" then out = out & lines(linenum) & vbCrLf end if ' lines(linenum) <> "" linenum = (linenum + 1 ) mod lastLines loop until linenum = (lastWrittenLine + 1) end if ' lastWrittenLine ' return all the content log2str = out end function ' log2str