Letzte zeile einlesen und ausgeben
VBS Script um die letzte Zeile einer Textdatei asugeben
Ich möchte eine Textdatei die von einem anderen Programm alle paar Sekunden neu geschrieben wird
in einer Box ausgeben und zwar immer die letzte aktuelle Zeile.
und wenn ein bestimmter Text in der letzten Zeile steht soll das VBS Script beendet werden
Geht das und wie ?
Ich möchte eine Textdatei die von einem anderen Programm alle paar Sekunden neu geschrieben wird
in einer Box ausgeben und zwar immer die letzte aktuelle Zeile.
und wenn ein bestimmter Text in der letzten Zeile steht soll das VBS Script beendet werden
Geht das und wie ?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 74321
Url: https://administrator.de/contentid/74321
Ausgedruckt am: 23.11.2024 um 12:11 Uhr
4 Kommentare
Neuester Kommentar
Moin freysup,
Und ob jede Zeile sofort "in die Datei geschrieben" wird, oder erst ein Buffer für 2000 Zeilen volllaufen muss, bevor eine flush()/commit()-Aktion des schreibenden Programms erfolgt.
Hast Du denn darüber gesicherte Erkenntnisse?
Grüße
Biber
Geht das und wie ?
Das kommt darauf an, ob dieses schreibende Programm zwischendurch den lesenden Zugriff erlaubt.Und ob jede Zeile sofort "in die Datei geschrieben" wird, oder erst ein Buffer für 2000 Zeilen volllaufen muss, bevor eine flush()/commit()-Aktion des schreibenden Programms erfolgt.
Hast Du denn darüber gesicherte Erkenntnisse?
Grüße
Biber
Hallo freysup!
Die Grundstruktur müsste etwa so aussehen:
Falls die letzte Zeile mit einer Zeilenschaltung endet (und daher eigentlich am Ende eine zusätzliche völlig leere Zeile steht) , wäre ersatzweise
zu verwenden.
Grüße
bastla
Die Grundstruktur müsste etwa so aussehen:
Const Datei = "D:\Log.txt"
Const Suchstring = "Dein Text"
Set fso=CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
Do
Text = Split(fso.OpenTextFile(Datei, 1).ReadAll, vbCrLF)
Letzte = Text(UBound(Text))
WshShell.Popup Letzte, 5, "Letzte Zeile" 'Anzeigedauer 5 Sekunden
WScript.Sleep 5000 '5 Sekunden Pause
Loop Until InStr(Letzte, Suchstring) > 0
Letzte = Text(UBound(Text) - 1)
Grüße
bastla
@freysup
Moin freysup,
Sach ma', fehlt da oben nicht noch so grüner Haken?
Oder sind noch Fragen offen? Gib uns bitte Feedback.
nein, Feedback heißt nicht "Füße zurücknehmen oder hochlegen"...
Grüße
Biber
Moin freysup,
Sach ma', fehlt da oben nicht noch so grüner Haken?
Oder sind noch Fragen offen? Gib uns bitte Feedback.
nein, Feedback heißt nicht "Füße zurücknehmen oder hochlegen"...
Grüße
Biber