Zeilenumbruch aus Textdatei löschen oder ersetzen mit VB-Sript
Hallo! Vermutlich ist mein Problem für erfahrene VBler eine Fingerübung ... aber ich bin absoluter Anfänger und verzweifle an diesem kleinen Problem!
Aus einer Textdatei (diese stammt aus einem Mailprogramm - kann einfach mit dem Windows Editor geöffnet werden) sollen bestimmte Zeichen aussortiert und ersetzt werden - das ist auch kein Problem für mich ... dafür habe ich mir ein VB-Script erstellt, das auch gut funktioniert! Allerdings muss auch ein Zeichen, das immer von einem Zeilenwechsel gefolgt wird ersetzt werden und zwar inklusive Zeilenumbruch! Das Zeichen zu entfernen ist kein Problem ... aber wie mach ich VB klar, dass auch der Zeilenumbruch nach diesem Zeichen entfernt werden soll? Versuche mit vbLf , vbCr, vbCrLf waren erfolglos - damit kann ich zwar einen Zeilenwechsel einfügen, aber nicht den Zeilenwechsel erkennen und ersetzen! Die Folgezeile soll einfach angehängt werden! Hier mein Beispiel:
Erst-irgendein-text-und-das-letzte-zeichen-dieser-zeile-soll-gelöscht-werden# (<- hier ist der böse Zeilenwechsel!!)
und-dies-soll-hinten-dran-in-die-obere-Zeile
Hat da jemand eine Lösung für mich?
Wie gesagt: das "#" zu löschen oder zu ersetzen ist kein Problem ... aber was muß ich zum Löschen des Leerzeichens im VB-Script eintragen ( /r/n war auch ein Versuch ... hat nicht funktioniert!)
Mein Versuch war folgendermassen:
FeldtrennerAlt = "#" & vbLf
FeldtrennerNeu = "Test"
Diese Zeilen haben im text gar nichts verändert!
Wenn ich "& vbLf" weglasse, ersetzt das Script das "#" durch das Wort "Test" ... der Zeilenwechsel bleibt aber bestehen
Ich bin für jeden Tip dankbar!!
Erst-irgendein-text-und-das-letzte-zeichen-dieser-zeile-soll-gelöscht-werden# (<- hier ist der böse Zeilenwechsel!!)
und-dies-soll-hinten-dran-in-die-obere-Zeile
Hat da jemand eine Lösung für mich?
Wie gesagt: das "#" zu löschen oder zu ersetzen ist kein Problem ... aber was muß ich zum Löschen des Leerzeichens im VB-Script eintragen ( /r/n war auch ein Versuch ... hat nicht funktioniert!)
Mein Versuch war folgendermassen:
FeldtrennerAlt = "#" & vbLf
FeldtrennerNeu = "Test"
Diese Zeilen haben im text gar nichts verändert!
Wenn ich "& vbLf" weglasse, ersetzt das Script das "#" durch das Wort "Test" ... der Zeilenwechsel bleibt aber bestehen
Ich bin für jeden Tip dankbar!!
Please also mark the comments that contributed to the solution of the article
Content-Key: 119611
Url: https://administrator.de/contentid/119611
Printed on: April 24, 2024 at 22:04 o'clock
8 Comments
Latest comment
Hallo
man könnte doch erst mal mit der InStr herausfinden, wo die "#" steht, dann - aber nur wenn es einen Zeilenumbruch immer gibt! - ließt man sich mittels der Stringvariable1 alle Zeichen davor ein
dann sucht man weiter nach dem Leerzeichen, welches ja für den Zeilenumbruch stehen müßte
und übergibt den Rest in ähnlicher Weise an Stringvariable2.
Anschließend führt man Stringvariable1 und 2 zusammen.
Gruß
Tsuki
man könnte doch erst mal mit der InStr herausfinden, wo die "#" steht, dann - aber nur wenn es einen Zeilenumbruch immer gibt! - ließt man sich mittels der Stringvariable1 alle Zeichen davor ein
Stringvariable 1 = mid
(Textkomplett,1,bisAnDieStelleWoDie#Steht)
und übergibt den Rest in ähnlicher Weise an Stringvariable2.
Anschließend führt man Stringvariable1 und 2 zusammen.
Gruß
Tsuki
Hallo,
ich nutze für dieses Problem immer "TR.EXE".
Einfach mal googeln oder eine Nachricht an mich, dann sende ich Dir das zu.
Gruß René
ich nutze für dieses Problem immer "TR.EXE".
Einfach mal googeln oder eine Nachricht an mich, dann sende ich Dir das zu.
Gruß René
Moin
Evtl genügt es ja auch den Text gleich, nur Zeilenweise einzulesen, z.B.
Gruß L.
Evtl genügt es ja auch den Text gleich, nur Zeilenweise einzulesen, z.B.
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objSourceFile = objFSO.OpenTextFile("Source.txt", 1) ' Quelldatei öffnen
Do Until objSourceFile.AtEndOfStream
szNextLine = objSourceFile.Readline
if Right(szNextLine,1) = "#" Then
' jetzt nächste zeile holen und zusammen setzen
end if
Loop
Gruß L.