Umlaufendes Logfile herunterladen und fortschreiben
Hallo,
ich brauche mal wieder Hilfe.. Ich habe eine Reihe umlaufender Logfiles die über http herunterladbar sind. Um nun keine Informationen zu verlieren wenn zu viele neue Einträge reinkommen, möchte ich die Logfiles zyklisch herunterladen und in lokale Textdateien abspeichern. Allerdings möchte ich die "Momentaufnahmen" nicht einfach hintereinanderklatschen, sondern nur die neuen Zeilen hintendranhängen. Hat schon jemand sowas gemacht und ne Idee für mich? Kann gerne auch ne Batch-Lösung sein..
Vielen Dank im voraus.
Gruß Haegar
ich brauche mal wieder Hilfe.. Ich habe eine Reihe umlaufender Logfiles die über http herunterladbar sind. Um nun keine Informationen zu verlieren wenn zu viele neue Einträge reinkommen, möchte ich die Logfiles zyklisch herunterladen und in lokale Textdateien abspeichern. Allerdings möchte ich die "Momentaufnahmen" nicht einfach hintereinanderklatschen, sondern nur die neuen Zeilen hintendranhängen. Hat schon jemand sowas gemacht und ne Idee für mich? Kann gerne auch ne Batch-Lösung sein..
Vielen Dank im voraus.
Gruß Haegar
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 155285
Url: https://administrator.de/contentid/155285
Ausgedruckt am: 25.11.2024 um 00:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo Haegar75!
Zum Herunterladen kannst Du "wget" oder zB
verwenden.
Die Weiterverarbeitung ist mir dann nicht ganz klar - könntest Du das noch etwas konkretisieren und auch zB den Umfang der Logfiles (Zeilenanzahl, Dateigröße) angeben?
Grüße
bastla
Zum Herunterladen kannst Du "wget" oder zB
Set Http = CreateObject("WinHttp.WinHttpRequest.5.1")
Http.Open "GET", "http://Log-File-URL", False
Http.Send
LogText = Http.ResponseText
Die Weiterverarbeitung ist mir dann nicht ganz klar - könntest Du das noch etwas konkretisieren und auch zB den Umfang der Logfiles (Zeilenanzahl, Dateigröße) angeben?
Grüße
bastla
Hallo Haegar75!
Meine Frage nach dem Umfang bezog sich auf die Möglichkeit, den gesamten Inhalt (bzw dessen größten Teil) in eine Variable (und damit den Arbeitsspeicher zu holen) - dann könnte nach diesem "Block" in der nächsten Datei gesucht und nur der darauf folgende Teil hinzugefügt werden - schematisch (und völlig ungetestet) also etwa (ausgehend davon, dass die heruntergeladenen Dateien als "Vorletzte.txt" und "Letzte.txt" gespeichert sind und die Zusammenfassung in "Gesamt.txt" erfolgen soll) so:
Danach die Datei "D:\Vorletzte.txt" durch "D:\Letzte.txt" ersetzen und "D:\Letzte.txt" neu herunterladen.
Grüße
bastla
Meine Frage nach dem Umfang bezog sich auf die Möglichkeit, den gesamten Inhalt (bzw dessen größten Teil) in eine Variable (und damit den Arbeitsspeicher zu holen) - dann könnte nach diesem "Block" in der nächsten Datei gesucht und nur der darauf folgende Teil hinzugefügt werden - schematisch (und völlig ungetestet) also etwa (ausgehend davon, dass die heruntergeladenen Dateien als "Vorletzte.txt" und "Letzte.txt" gespeichert sind und die Zusammenfassung in "Gesamt.txt" erfolgen soll) so:
Set fso = CreateObject("Scripting.FileSystemObject")
InhaltVorletzte = fso.OpenTextFile("D:\Vorletzte.txt").ReadAll
InhaltLetzte = fso.OpenTextFile("D:\Letzte.txt").ReadAll
TeilAlt = Mid(InhaltVorletzte, 2001) 'erste 2000 Zeichen überspringen - sollten alle in der neuen Datei weggefallenen Zeilen enthalten
Pos = InStr(InhaltLetzte, TeilAlt)
If Pos > 0 Then
TeilNeu = Right(InhaltLetzte, Len(InhaltLetzte) - Pos - Len(TeilAlt))
fso.OpenTextFile("D:\Gesamt.txt", 8, True).Write TeilNeu
End If
Grüße
bastla