65399
06.06.2008, aktualisiert um 14:47:16 Uhr
3183
1
0
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.
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.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 89302
Url: https://administrator.de/contentid/89302
Ausgedruckt am: 22.11.2024 um 20:11 Uhr
1 Kommentar
salü tster
wenn's auch ein VBScript sein darf, hier ein vorschlag!
müsstest einfach noch input.txt an deine gegebenheiten anpassen! dabei wird die alte datei belassen und eine neue erstellt!
gruss tacker
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