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-Key: 74321

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

Printed on: April 23, 2024 at 07:04 o'clock

Member: Biber
Biber Nov 23, 2007 at 12:29:28 (UTC)
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
Member: freysup
freysup Nov 23, 2007 at 12:31:39 (UTC)
Goto Top
ich kann die Datei jederzeit öffnen
Member: bastla
bastla Nov 23, 2007 at 14:05:43 (UTC)
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
Member: Biber
Biber Nov 28, 2007 at 07:12:20 (UTC)
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