Mit VBS bei einer Text Datei bei Leerzeilen an bestimmter Stelle den Wert aus oberer Zeile einfügen
Hallo Team,
habe hier ein Problem mit einer Textdatei.
Die Daten in der textdatei sind Blockweise getrennt (durch eine Leerzeile).
Ich benötige den wert aus einer bestimmten Stelle (immer gleich) der Zeile direkt oberhalb der Leerzeile (an der gleichen Stelle)
Eigentlich muss "nur" der Wert nach unten in die Leerzeile geklappt werden.
Beginne gerade mit VB Script und habe noch keine Lösung.
Mit Excel und Makros geht es, aber die Datei ist zu groß.
Habe hier eine Datei mit ca. 100.000 Zeilen.
Muster der Datei:
10 er345 DE
12 ztr345 DE
32 tu345 ZV
13 ur345 ZV
45 pq345 DE
08 rt345 DE
Und sollte so aussehen:
10 er345 DE
12 ztr345 DE
DE
32 tu345 ZV
13 ur345 ZV
ZV
45 pq345 DE
08 rt345 DE
ZV
Ich hoffe, Ihr habt da eine Lösung.
Danke im Voraus.
habe hier ein Problem mit einer Textdatei.
Die Daten in der textdatei sind Blockweise getrennt (durch eine Leerzeile).
Ich benötige den wert aus einer bestimmten Stelle (immer gleich) der Zeile direkt oberhalb der Leerzeile (an der gleichen Stelle)
Eigentlich muss "nur" der Wert nach unten in die Leerzeile geklappt werden.
Beginne gerade mit VB Script und habe noch keine Lösung.
Mit Excel und Makros geht es, aber die Datei ist zu groß.
Habe hier eine Datei mit ca. 100.000 Zeilen.
Muster der Datei:
10 er345 DE
12 ztr345 DE
32 tu345 ZV
13 ur345 ZV
45 pq345 DE
08 rt345 DE
Und sollte so aussehen:
10 er345 DE
12 ztr345 DE
DE
32 tu345 ZV
13 ur345 ZV
ZV
45 pq345 DE
08 rt345 DE
ZV
Ich hoffe, Ihr habt da eine Lösung.
Danke im Voraus.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 215564
Url: https://administrator.de/forum/mit-vbs-bei-einer-text-datei-bei-leerzeilen-an-bestimmter-stelle-den-wert-aus-oberer-zeile-einfuegen-215564.html
Ausgedruckt am: 15.05.2025 um 11:05 Uhr
3 Kommentare
Neuester Kommentar

hoi 
sollte nicht nach
45 pq345 DE
08 rt345 DE
DE stehen oder vertuh ich mich grade :D
Grüße
Exze
Muster der Datei:
10 er345 DE
12 ztr345 DE
32 tu345 ZV
13 ur345 ZV
45 pq345 DE
08 rt345 DE
Und sollte so aussehen:
10 er345 DE
12 ztr345 DE
DE
32 tu345 ZV
13 ur345 ZV
ZV
45 pq345 DE
08 rt345 DE
ZV
sorry ich erkenne keine Logik in dem Schnipsel10 er345 DE
12 ztr345 DE
32 tu345 ZV
13 ur345 ZV
45 pq345 DE
08 rt345 DE
Und sollte so aussehen:
10 er345 DE
12 ztr345 DE
DE
32 tu345 ZV
13 ur345 ZV
ZV
45 pq345 DE
08 rt345 DE
ZV
sollte nicht nach
45 pq345 DE
08 rt345 DE
DE stehen oder vertuh ich mich grade :D
Grüße
Exze
Hallo babylonstation5, willkommen im Forum.
Probier mal folgendes Script:
Die Dateinamen solltest du natürlich anpassen 
Grüße
rubberman
Probier mal folgendes Script:
Option Explicit
Const strSrc = "input.txt"
Const strDest = "output.txt"
Dim objFSO, objSrcFile, objDestFile, strLine, arrLine, boolEmpty
Const ForWriting = 2
boolEmpty = False
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objSrcFile = objFSO.OpenTextFile(strSrc)
Set objDestFile = objFSO.OpenTextFile(strDest, ForWriting, True)
While Not objSrcFile.AtEndOfStream
strLine = objSrcFile.ReadLine
If strLine = "" Then
If IsArray(arrLine) And boolEmpty = False Then strLine = arrLine(UBound(arrLine))
boolEmpty = True
Else
arrLine = Split(strLine, " ")
boolEmpty = False
End If
objDestFile.WriteLine strLine
Wend
If strLine <> arrLine(UBound(arrLine)) And boolEmpty = False Then objDestFile.WriteLine arrLine(UBound(arrLine))
objSrcFile.Close
objDestFile.Close
Grüße
rubberman