65399
Goto Top

Batch-Nach bestimmtem Muster suchen und Eintrag dupliziern

Ich habe eine Datei mit vielen Zeilen, ein paar Beispielzeilen sehr ihr hier:

4;12;10000;LV;01.11.2001;30.12.2010;20
4;18;10000;LV;01.11.2001;30.12.2010;0
4;24;10000;LV;01.11.2001;30.12.2010;0
3;30;10000;LV;01.11.2001;30.12.2010;0
4;36;10000;LV;01.11.2001;30.12.2010;0
4;42;10000;LV;01.11.2001;30.12.2010;0
5;48;10000;LV;01.11.2001;30.12.2010;0
4;54;10000;LV;01.11.2001;30.12.2010;0
4;60;10000;LV;01.11.2001;30.12.2010;0
4;12;15000;LV;01.11.2001;30.12.2010;26
4;18;15000;LV;01.11.2001;30.12.2010;19
8;24;15000;LV;01.11.2001;30.12.2010;0
4;30;15000;LV;01.11.2001;30.12.2010;0
4;36;15000;LV;01.11.2001;30.12.2010;0
4;42;15000;LV;01.11.2001;30.12.2010;0
4;48;15000;LV;01.11.2001;30.12.2010;0

Ich möchte nun, dass für jeden Zeile, wo nach dem ersten ";" eine 12 steht, eine zusätzliche Zeile eingefügt wird, die exakt gleich ist, nur das aus der 12 eine 6 wird. Das Ergebnis würde dann so aussehen:

4;6;10000;LV;01.11.2001;30.12.2010;20
4;12;10000;LV;01.11.2001;30.12.2010;20
4;18;10000;LV;01.11.2001;30.12.2010;0
4;24;10000;LV;01.11.2001;30.12.2010;0
3;30;10000;LV;01.11.2001;30.12.2010;0
4;36;10000;LV;01.11.2001;30.12.2010;0
4;42;10000;LV;01.11.2001;30.12.2010;0
5;48;10000;LV;01.11.2001;30.12.2010;0
4;54;10000;LV;01.11.2001;30.12.2010;0
4;60;10000;LV;01.11.2001;30.12.2010;0
4;6;15000;LV;01.11.2001;30.12.2010;26
4;12;15000;LV;01.11.2001;30.12.2010;26
4;18;15000;LV;01.11.2001;30.12.2010;19
8;24;15000;LV;01.11.2001;30.12.2010;0
4;30;15000;LV;01.11.2001;30.12.2010;0
4;36;15000;LV;01.11.2001;30.12.2010;0
4;42;15000;LV;01.11.2001;30.12.2010;0
4;48;15000;LV;01.11.2001;30.12.2010;0

Die Reihenfolge der Zeilen ist hierbei völlig egal. Wer kann mir hier bitte helfen? Ich habe leider keine Ahnung wie das funktioneiren könnte...


Irgendwie tut das Antowrten bei mir nicht. Aber die Antwort von tacker ist super, vielen Dank.

Content-ID: 89302

Url: https://administrator.de/contentid/89302

Ausgedruckt am: 22.11.2024 um 20:11 Uhr

tacker
tacker 06.06.2008 um 14:47:15 Uhr
Goto Top
salü tster

wenn's auch ein VBScript sein darf, hier ein vorschlag!

dim fso
set fso = createobject("scripting.filesystemobject")  

set openfile = fso.opentextfile("input.txt", 1)  
set writefile = fso.createtextfile("output.txt")  

do until openfile.AtEndOfStream
    arr = split(openfile.readline(), ";")  
    if(arr(1) = "12") then  
        writefile.writeline(arr(0) & ";6;" & arr(2) & ";" & arr(3) & ";" & arr(4) & ";" & arr(5) & ";" & arr(6))  
    end if
    writefile.writeline(arr(0) & ";" & arr(1) & ";" & arr(2) & ";" & arr(3) & ";" & arr(4) & ";" & arr(5) & ";" & arr(6))  
loop

openfile.close
writefile.close
fso = null

müsstest einfach noch input.txt an deine gegebenheiten anpassen! dabei wird die alte datei belassen und eine neue erstellt!

gruss tacker