charly2005 Geschrieben 18. Juni 2009 Geschrieben 18. Juni 2009 Hallo zusammen, ich hab folgendes Problem: Hab hier ein VBS-Statement, welches in einer txt.-Datei Zeichenketten ersetzen soll. Das Problem liegt in der Zeile Suchen = "08:07:33" Er sucht nach der Uhrzeit 08:07:33 und ersetzt diese - allerdings ist die Uhrzeit eine Variable und ich müßte praktisch so was basteln: Suchen = "**:**:**" Das funktioniert aber leider nicht. 'Variablen initialisieren Dim Suchen Dim Ersetzen Dim NeuerInhalt Dim Inhalt Suchen = "**:**:**" Ersetzen = "Neuer Text" Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.OpenTextFile("Z:\temp\ModularNeu.txt", 1) Inhalt = File.ReadAll File.Close NeuerInhalt = Replace(Inhalt, Suchen, Ersetzen) + vbCr Set File = FSO.OpenTextFile("Z:\temp\ModularNeu.txt", 2) File.Write NeuerInhalt File.Close End Sub Ich hoffe, Ihr könnt mir helfen ! Zitieren
Eratum Geschrieben 18. Juni 2009 Geschrieben 18. Juni 2009 Hast du die **:**:** Syntax noch an anderer Stelle in der TXT? Wenn nein, dann kannst du Zeilenweise auslesen und per Instr() checken ob sich da irgendwo die Urzeit befindet... Oder, wenn dem Uhrzeitblock noch etwas vorran geht (Zeit: ...) such nach dem String und ersetze was dahinter ist... MfG erratum Zitieren
charly2005 Geschrieben 18. Juni 2009 Autor Geschrieben 18. Juni 2009 HI, diese Syntax kommt mehrfach in der Datei vor - aber immer nur bei den Zeiteinträgen. Leider steht vor der Zeit nichts mehr - die Einträge stehen immer direkt am Anfang der Zeilen. Zitieren
Eratum Geschrieben 18. Juni 2009 Geschrieben 18. Juni 2009 Stehen die Zeiteinträge am Anfang jeder Zeile und müssen alle Zeiteinträge geändert werden? Zitieren
charly2005 Geschrieben 18. Juni 2009 Autor Geschrieben 18. Juni 2009 Jop ! Allerdings nicht in jeder Zeile - die Zeiteinträge stehen z.B. in Zeile 5 & in Zeile 8 usw. Zitieren
Eratum Geschrieben 18. Juni 2009 Geschrieben 18. Juni 2009 Hrm, ich würde dann Zeilenweise auslesen und dann überprüfen ob das 3te und das 6te Zeichen ein Doppelpunkt ist. Wenn ja, dann kannst du die ersten 8 Zeichen ja wegschnibbeln... if mid(DeineZeile, 3, 1) = ":" & mid(DeineZeile, 6, 1) = ":" then Und zum ersetzen DeineZeile = Einzufügendes & mid(DeineZeile, 9, len(deineZeile)-9) Könnte so funktionieren... Zitieren
MartinSt Geschrieben 18. Juni 2009 Geschrieben 18. Juni 2009 Wenn es nicht unbedingt VBS sein soll, kannst du es über grep & Co. mit RegExpr machen. Zitieren
Amstelchen Geschrieben 19. Juni 2009 Geschrieben 19. Juni 2009 Wenn es nicht unbedingt VBS sein soll, kannst du es über grep & Co. mit RegExpr machen. auch VBS kann RegExp: Microsoft Beefs Up VBScript with Regular Expressions s'Amstel Zitieren
MartinSt Geschrieben 20. Juni 2009 Geschrieben 20. Juni 2009 @Amstelchen Danke für die Korrektur, mein VB ist etwas eingerostet seit ich auf dieser indonesischen Insel wohne. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.