Here's a function you could use to load the contents of a file:
Public Function LoadFile(dFile As String) As String
Dim ff As Integer
On Error Resume Next
ff = FreeFile
Open dFile For Binary As #ff
LoadFile = Space(LOF(ff))
Get #ff, , LoadFile
Close #ff
End Function
Next, you want to split the output of that file. First, you will need to know what type of EOL termination character will be produced by the back-end. Assuming each line ends with a carriage return (13) and a line feed (10), you could use this code to store each line into a string array:
Dim lines() As String
lines = Split(LoadFile("LANrealm.log"), vbCrLf)
Finally, it's a matter of cycling through each line (using a For...Next loop) and look for whatever information you want to extract:
For i = 0 To Ubound(lines)
' Add here necessary logic to extract the information.
' Each line can be accessed by indexing the array as: lines(i)
Next
Hope this helps you get started...
To test the code:
- Start VB6 and create a new project. VB6 will create an empty project with one form
- Double click the form to view it
- Right click the Toolbox and select "Components"
- Locate the "Microsoft Common Dialog Control" and select it
- Click OK
- Now, drag the "CommonDialog" component from the Toolbox onto the form
- Double click the form to view its source code
- Paste the following code
NOTE: Make sure you overwrite any pre-existing code
Option Explicit
Private Sub Form_Load()
cDlg.DefaultExt = "txt"
cDlg.Filter = "Text Files|*.txt;*.log"
cDlg.ShowOpen
If cDlg.fileName <> "" Then AnalyzeFile .fileName
End Sub
Private Sub AnalyzeFile(fileName As String)
Dim fileContents As String
Dim lines() As String
Dim i As Integer
fileContents = LoadFile(fileName)
lines = Split(fileContents, vbCrLf)
For i = 0 To UBound(lines)
If InStr(1, lines(i), "event:", vbTextCompare) Then
MsgBox "Line #" & i & " contains the string 'event'" + vbCrLf + vbCrLf + lines(i)
End If
Next
End Sub
Private Function LoadFile(dFile As String) As String
Dim ff As Integer
On Error Resume Next
ff = FreeFile
Open dFile For Binary As #ff
LoadFile = Space(LOF(ff))
Get #ff, , LoadFile
Close #ff
End Function
Run the program and, when asked to supply a file, select one of the logs that will be generated by the back-end.
In this example, the program will tell you which lines contain "event information", such as "Event: Roper killed Pleb (M4A1) shots=5 Feet=2 Body=2 Head=1".