butterblume
Goto Top

VBScript Eine Zeile ersetzten!

Hallo Miteinander!

Ich schreibe einen Script, der eine Textdatei nach einem Wort durchsucht.
Dies macht er Zeilenweise mit ReadLine und SkipLine. Jetzt brauche ich aber noch Anzahl Zeilen, habe im Google gesucht und nichts gefunden.
Kennt ihr eine Methode dafür?
Und dann möchte ich die Zeile ersetzten mit Replace?? Geht das?
Welche Funktion von FSO brauche ich, dass ich dies tun kann? Ich kenne nur das Text am Ende der Datei hinzufügen aber nicht im Text verändern.

Kann mir vielleicht jemand auf die Sprünge helfen? Muss nicht der ganze Code sein aber vielleicht Befehle, die ich benötige?
Wäre sehr hilfreich, ich bin nur Anfänger von VBS.

Danke für die Hilfe.

Gruss, Kristy.

Content-ID: 92487

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

Ausgedruckt am: 22.11.2024 um 13:11 Uhr

tacker
tacker 21.07.2008 um 10:56:58 Uhr
Goto Top
salü butterblume

Jetzt brauche ich aber noch Anzahl Zeilen, habe im Google gesucht und nichts gefunden.

verwende hierzu einfach eine variable als zähler, welche du nach jeder gelesenen zeile um eins erhöhst!

Und dann möchte ich die Zeile ersetzten mit Replace?? Geht das?

hier würde sich anbieten zu beginn des scripts die ganze textdatei in eine variable einzulesen (ReadAll()) und danach wenn du die zeile weisst, welche dein suchwort beinhaltet, diese in der zuvor eingelesenen variable zu ersetzen! Danach kannst du die alte textdatei mit dieser variablen überschreiben!

gruss tacker
Butterblume
Butterblume 21.07.2008 um 11:33:53 Uhr
Goto Top
Ich habe inzwischen einen Script, der die Zeile löscht.
Kann ich den gleichen Script zum ersetzten benutzen? Wie sieht er aus?

Set MyFiles = CreateObject("Scripting.FileSystemObject")  
Const ForReading = 1, ForWriting = 2

varDatei="C:\Dokumente und Einstellungen\Kristina\Desktop\PROGRAMM SCHRIFTGENI\NEU!!!\Test.txt"  
varTmpDatei="C:\Dokumente und Einstellungen\Kristina\Desktop\PROGRAMM SCHRIFTGENI\NEU!!!\TestOut.txt"  
Set fin = MyFiles.OpenTextFile(varDatei, ForReading)
Set fout = MyFiles.OpenTextFile(varTmpDatei, ForWriting, True)

strSearch = "TEST="  

do while not fin.AtEndOfStream
       strline = fin.readLine()
       if instr(1,strline, strSearch) = 0 then		
               'Zu entfernende Zeile nicht gefunden, also Zeile ausgeben  
               fout.writeline strline
       end if
loop

Gruss, Kristy


@tacker
Könnte ich den Teil des Codes haben?
Ich weiss nicht so genau wie das geht.
bastla
bastla 21.07.2008 um 11:40:05 Uhr
Goto Top
Hallo Butterblume!

Du müsstest eigentlich nur Deinen Code ab Zeile 16 um ein "Else" ergänzen, also etwa
Else
    fout.WriteLine strNeueZeile
Grüße
bastla
Butterblume
Butterblume 24.07.2008 um 10:15:30 Uhr
Goto Top
Danke, das hat tiptop funktioniertface-smile