Public Function ReadEOFData(ByRef FilePath As String) As String
On Error GoTo Err_Renamed
Dim sEOFBuf, sFileBuf, sChar As String
Dim lPos2, lFF, lPos, lCount As Integer
If Dir(FilePath) = "" Then GoTo Err_Renamed
lFF = FreeFile()
FileOpen(lFF, FilePath, OpenMode.Binary)
sFileBuf = Space(LOF(lFF))
FileGet(lFF, sFileBuf)
FileClose(lFF)
lPos = InStr(1, StrReverse(sFileBuf), GetNullBytes(30))
sEOFBuf = (Mid(StrReverse(sFileBuf), 1, lPos - 1))
ReadEOFData = StrReverse(sEOFBuf)
If ReadEOFData = "" Then
End If
Exit Function
Err_Renamed:
ReadEOFData = vbNullString
End Function

Sub WriteEOFData(ByRef FilePath As String, ByRef EOFData As String)
Dim sFileBuf As String
Dim lFF As Integer
On Error Resume Next
If Dir(FilePath) = "" Then Exit Sub
lFF = FreeFile()
FileOpen(lFF, FilePath, OpenMode.Binary)
sFileBuf = Space(LOF(lFF))
FileGet(lFF, sFileBuf)
FileClose(lFF)
Kill(FilePath)
lFF = FreeFile()
FileOpen(lFF, FilePath, OpenMode.Binary)
FilePut(lFF, sFileBuf & EOFData)
FileClose(lFF)
End Sub

Public Function GetNullBytes(ByRef lNum As Object) As String
Dim sBuf As String
Dim i As Short
For i = 1 To lNum
sBuf = sBuf & Chr(0)
Next
GetNullBytes = sBuf
End Function