freysup
Goto Top

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 ?

Content-ID: 74321

Url: https://administrator.de/contentid/74321

Ausgedruckt am: 23.11.2024 um 12:11 Uhr

Biber
Biber 23.11.2007 um 13:29:28 Uhr
Goto Top
Moin freysup,
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
freysup
freysup 23.11.2007 um 13:31:39 Uhr
Goto Top
ich kann die Datei jederzeit öffnen
bastla
bastla 23.11.2007 um 15:05:43 Uhr
Goto Top
Hallo freysup!

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
Falls die letzte Zeile mit einer Zeilenschaltung endet (und daher eigentlich am Ende eine zusätzliche völlig leere Zeile steht) , wäre ersatzweise
	Letzte = Text(UBound(Text) - 1)
zu verwenden.

Grüße
bastla
Biber
Biber 28.11.2007 um 08:12:20 Uhr
Goto Top
@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