wenn du die Datei zeilenweise durchgehst, kannst du ja abfragen, ob der Inhalt leer ist.
(z.B. trim(Zeile) = „“)
Wenn du in eine neue Datei reinschreibst, kannst du nun vor jede Ausgabe eine Variable setzen, die du leer initialisiert (z.B. blank = „“) und erst mit einem " " befüllst, sobald eine Leerzeile eingelesen wurde.
hier ein Besipiel. Habs nicht getestet, sollte aber gehen.
Const ForReading = 1
Set ofs = CreateObject(„Scripting.FileSystemObject“)
Set input = ofs.OpenTextFile(„c:\textdatei.txt“, ForReading)
alles = input.ReadAll
input.Close
Set output = ofs.CreateTextFile(„c:\textdatei.txt“, vbTrue)
leergefunden = False
For Each line In Split(alles, vbCr)
If leergefunden Then
output.WriteLine " " & line
Else
output.WriteLine line
if line = „“ then leergefunden = True
End If
Next
Habe den Code folgendermaßen in mein Programm geschrieben.
Jetzt macht das Programm allerdings überall eine Leerzeile hinein nach jeder Zeile.
Es sollte jedoch nur ein Leerzeichen an den Anfang jeder Zeie nach der einzigen Leerzeile in der Textdatei setzten.
Ich speicher zudem die Textdatei in einem anderen Ordner danach ab, die Orginaldatei soll so erhalten bleiben. Dieser Code verändert aber auch meine Orginaldatei.
Set ofs = CreateObject(„Scripting.FileSystemObject“)
Set input = ofs.OpenTextFile(„M:\Matt_16_VBS\Datapage\Faro_52285.txt“, ForReading)
alles = input.ReadAll
input.Close
Set output = ofs.CreateTextFile(„M:\Matt_16_VBS\Datapage\Faro_52285.txt“, vbTrue)
leergefunden = False
For Each line In Split(alles, vbCr)
If leergefunden then
output.WriteLine " " & line
Else
output.WriteLine line
end if
if line = „“ then
leergefunden = True
End If
Next
output.Close
'------ Abspeichern der Textdatei -----------
Hmmm, OK, das könnte an den Zeilenumbrüchen liegen. Die sind nicht immer vbcr, sondern manchmal auch vblf oder wahrscheinlich eher vbcrlf. Versuch den Split also erst mal mit vbcrlf, vielleicht klappts damit.
wie kann ich in VBS eine Leerzeile in einer Textdatei
erkennen?
Datei Zeilenweise lesen und dabei in eine neue Datei schreiben.
Bei der ersten Leerzeile, wird bei jedem Schreiben einer weiteren Zeile am Anfang der gelesenen Zeile ein Leerzeichen eingefügt.
Abgesehen da von das die Frage schon was älter ist, habe ich nicht ganz verstanden was du machen möchtest. Du willst nach einem Leerzeichen suchen um dann ein weiteres Leerzeichen hinzuzufügen?
Wenn die Frage noch akut ist einfach noch mal kurz beschreiben was du möchtest dann finden wir eine Lösung