babylonstation5

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.
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

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

106543
106543 29.08.2013 um 14:15:19 Uhr
Goto Top
Zitat von @babylonstation5:
Hallo Team,
hoi face-smile
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 Schnipsel
sollte nicht nach
45 pq345 DE
08 rt345 DE

DE stehen oder vertuh ich mich grade :D

Grüße
Exze
rubberman
rubberman 29.08.2013 um 21:24:26 Uhr
Goto Top
Hallo babylonstation5, willkommen im Forum.

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
Die Dateinamen solltest du natürlich anpassen face-wink

Grüße
rubberman
babylonstation5
babylonstation5 30.08.2013 um 09:49:10 Uhr
Goto Top
Stimmt natürlich. Mein Fehler. Sorry