Avatar billede clausn Nybegynder
08. januar 2003 - 19:00 Der er 1 kommentar og
1 løsning

Læs 2. sidste linie fra txt fil

Hej eksperter :)

Jeg har en log fil (fra DU-Meter). Her ønsker jeg at læse den 2. sidste linie, således at jeg kan finde ud af hvad der blev overført i går.

Min funktion DisplayLastLine udskriver lige nu antal linier, men dette skal erstattes af den 2. sidste linie (den sidste linie er et linieskift, og derfor kan denne ikke bruges). Når bare den rigtige linie kommer ud, skal jeg nok splitte udtrækket op og formatere :)

Function DisplayLastLine(filenavn)
    Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile(filenavn,1, 0)
    Do
    objFile.skipline
    loop until objFile.AtEndOfStream
    DisplayLastLine = objFile.line - 1
    Set objFile = Nothing

'    Set objFile = objFSO.OpenTextFile(filenavn,1, 0)
'    for skip = 1 to Cint(DisplayLastLine)
'    objFile.SkipLine
'    next
'    line = objFile.ReadLine
'    DisplayLastLine = line
'    objFSO = Nothing
'    Set objFile = Nothing
End function

Response.Write DisplayLastLine("c:\log.csv")

Uddrag fra logfilen:
04-Jan-2003,2734332,59750478,0
05-Jan-2003,8313606,1035777306,0
06-Jan-2003,5392127,96391380,0
07-Jan-2003,3.613.443,4.083.067,0
Avatar billede jespernaur Nybegynder
08. januar 2003 - 20:06 #1
Prøv følgende:

Function DisplayLastLine(filenavn)
    Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile(filenavn,1, 0)
    Do
        objFile.skipline
    loop until objFile.AtEndOfStream

    ' Tallet, der subtraheres, angiver den linie fra slutningen, der skal
    ' udskrives, således: 1 = sidste, 2 = næstsidste, 3 = trediesidste etc.
    DisplayLastLine = objFile.line - 2
    Set objFile = Nothing

    Set objFile = objFSO.OpenTextFile(filenavn,1, 0)
    for skip = 1 to Cint(DisplayLastLine)
        objFile.SkipLine
    next
    line = objFile.ReadLine
    DisplayLastLine = line
    Set objFSO = Nothing
    Set objFile = Nothing
End function

Response.Write DisplayLastLine("c:\log.csv")

Mvh
Jesper Naur
Avatar billede clausn Nybegynder
08. januar 2003 - 20:15 #2
Ja, det var vel egentlig bare "DisplayLastLine = objFile.line - 2" der skulle rettes, men selvfølgelig får du da point alligevel :)
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