12. februar 2004 - 12:44Der er
14 kommentarer og 1 løsning
ATT Kabbak - fortsættelse på logfil redigering
Kabbak tak for hjælpen vdr min logfil, men jeg er stødt ind i nogle problemer når jeg kører hele logfilen igennem. Dette er selvfølgelig min fejl, da jeg kun havde vist et uddrag af logfilen, som du så lavdede denne fortrinelige kode til. Men jeg har ikke magtet at rette den til at fungere på hele logfilen. Var det noget du måske gad at kigge på?
ps. logfilen er ikke voldsom stor, men lige lang nok til at liste det hele herinde.
Option Explicit Dim LogData() As Variant Dim NyLogData() As Variant Dim MidStr() As Variant Dim I As Long Dim P As Long Dim X As Long Dim Str As Variant Private Sub Command1_Click() Call hent End Sub Public Sub hent() Dim A As Long I = 0: X = 0 Open "C:\log.txt" For Input As #1 Do ReDim Preserve LogData(I) Line Input #1, LogData(I) If LogData(I) = "" Then GoTo GO I = I + 1 GO: Loop Until EOF(1) Close #1
Call Filbehandling
Open "C:\NYlog.txt" For Output As #1 For I = 0 To UBound(NyLogData) Print #1, NyLogData(I) Next Close #1
End Sub
Public Sub Filbehandling() Dim Navn As String, Ip As String, A As Integer, Bem As Boolean Dim Ws As String, Note As String, OK As Boolean, GK As String, G As Integer GK = Chr(34) & Chr(44) & Chr(34) Bem = False 'On Error Resume Next P = 0 For I = 0 To UBound(LogData) OK = False If Mid(LogData(I), 5, 1) = "-" Then GoTo Slettes
If I > 0 Then If Left(LogData(I - 1), 1) = "-" And Left(LogData(I + 1), 1) = "-" Then Str = Split(LogData(I), "(") Navn = Str(0) ' server Ip = Left(Str(1), Len(Str(1)) - 1) ' ip nummer Ws = "" GoTo Slettes End If End If
Call Splitbhandling ' kald af split rutine
If Bem = True Then Ws = MidStr(0) Bem = False GoTo Slettes End If If Left(MidStr(0), 1) = "*" Then Bem = False Ws = Right(MidStr(0), Len(MidStr(0)) - 2) If Len(Ws) < 2 Then Bem = True GoTo Slettes End If
Note = "" For A = 0 To UBound(MidStr) Note = Note & MidStr(A) & GK Next Note = Left(Note, Len(Note) - 2) OK = True
Videre: If OK = True Then ReDim Preserve NyLogData(P) NyLogData(P) = Chr(34) & Date & GK & Navn & GK & Ip & GK & Ws & GK & Note List1.AddItem Chr(34) & Date & GK & Navn & GK & Ip & GK & Ws & GK & Note P = P + 1 End If
Slettes: Next I = 0 End Sub Public Sub Splitbhandling() Dim Str As Variant, A As Variant Str = Split(LogData(I), Chr(9)) X = 0 For A = 0 To UBound(Str) If Str(A) <> "" Then ReDim Preserve MidStr(X) MidStr(X) = Str(A) X = X + 1 End If Next End Sub
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.