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

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

Printed on: April 19, 2024 at 16:04 o'clock

Member: tacker
tacker Jul 21, 2008 at 08:56:58 (UTC)
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
Member: Butterblume
Butterblume Jul 21, 2008 at 09:33:53 (UTC)
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.
Member: bastla
bastla Jul 21, 2008 at 09:40:05 (UTC)
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
Member: Butterblume
Butterblume Jul 24, 2008 at 08:15:30 (UTC)
Goto Top
Danke, das hat tiptop funktioniertface-smile