Avatar billede Slettet bruger
24. juli 2003 - 14:05 Der er 7 kommentarer

Hjælp til at læse webserve´s log fil..

Hej jeg er ved at lave et stastik program til hjemmeside.
og der til vil jeg så læse log fil.
som ser sådan ud.. Læs på (http://www.datacool.dk/log.htm)

Det er sådan at text skal i en db men ik alt text. kun
dato og m.m.

ik
#Software: Microsoft Internet Information Services 5.0
#Version: 1.0
#Date: 2003-03-15 18:41:25
Denne line er meget vigtig da den fortæller hvordan alt er delt op og skal bruges men problem er at den kommer igen og kan være rette. så den skal man læse hvergang der kommer en ny
---- Styre line ----
#Fields: date time c-ip cs-username s-ip s-port cs-method cs-uri-stem cs-uri-query sc-status cs(User-Agent)
-----

Data ser sådan ud..

2003-03-15 18:41:25 192.168.1.5 - 192.168.1.5 80 GET / - 200 Mozilla/4.0+(compatible;+MSIE+5.01;+Windows+NT+5.0)
2003-03-15 18:56:05 192.168.1.5 - 192.168.1.5 80 GET / - 200 Mozilla/4.0+(compatible;+MSIE+5.01;+Windows+NT+5.0)

og så skal det være sådan at den læser i #Fields.

jeg skal tage "2003-03-15" og putte i felt "date"

Alså en post skal se sådan ud

date : 2003-03-15
time : 18:41:25
c-ip : 192.168.1.5
cs-username : -
s-ip : 192.168.1.5
s-port : 80
cs-method : get

og såvider..

Ja det er lidt indvikle at forklart men håber i forstå eller må i lige skrive..

Husk at start kan komme igen..
Avatar billede tniels Nybegynder
24. juli 2003 - 14:36 #1
Du kan bare læse første tegn i hver linje.
Hvis tegnet er #, skal den springe linjen over.

Hver linje skal du så splitte op i et array hver gang der kommer et mellemrum.
Avatar billede Slettet bruger
24. juli 2003 - 17:23 #2
Jeg vil meget gerne ha lidt souces der kan hjælpe mig på vej.
Avatar billede fgsupermand Nybegynder
25. juli 2003 - 21:50 #3
Lav en form med en knap og en tekstboks og sæt denne kode ind

Private Sub Command1_Click()
    Dim strLog As String
    Dim strData() As String
    Dim intSize As Integer, i As Integer
   
    ReDim strData(0)
    strLog = "2003-03-15 18:41:25 192.168.1.5 - 192.168.1.5 80 GET / - 200 Mozilla/4.0+(compatible;+MSIE+5.01;+Windows+NT+5.0)"

    Do
        intSize = UBound(strData) + 1
        ReDim Preserve strData(intSize)
       
        strData(intSize) = NextPar(strLog, " ")
       
    Loop Until strLog = ""
   
    For i = 0 To UBound(strData)
        If strLog = "" Then
            strLog = strData(i)
        Else
            strLog = strLog & vbNewLine & strData(i)
        End If
    Next i
   
    Text1.Text = strLog
End Sub

Public Function NextPar(ByRef strHaystack As String, strNeedle As String) As String
    Dim intPos As Integer
   
    'Finder positionen af "strNeedle"
    intPos = InStr(1, strHaystack, strNeedle)
   
    'Tjekker om strNeedle blev fundet
    If intPos <> 0 Then
        'returnere den første parameter
        NextPar = Left$(strHaystack, intPos - 1)
       
        'Korter af den originale streng
        strHaystack = Mid(strHaystack, intPos + 1)
    Else
        NextPar = strHaystack
        strHaystack = ""
    End If
End Function

Håber det var hjælp nok ?
Avatar billede Slettet bruger
25. juli 2003 - 23:41 #4
Den kan jeg ik bruge til meget.

Jeg har en fil der skal læste og smidet over i en database..
Avatar billede Slettet bruger
25. juli 2003 - 23:45 #5
kode skal løbe filen igen og start med at finde #Fields. som fortæller hvad de næste felter betyder så skal den der efter løbe vider og kommer der så et felt der har en # skal den få til #Fields. igen for at opstæte hvad de næste felter af betydning

alt de data den finde som dato og tid med mere skal så puttes i en db.
Avatar billede fgsupermand Nybegynder
26. juli 2003 - 00:58 #6
Hvad mener du med "Den kan jeg ik bruge til meget", det er jo hele humlen, du har jo ikke skrevet noget om din database struktur.
Avatar billede Slettet bruger
09. juni 2004 - 01:42 #7
droppe og lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging