Textdatei Zeilenumbruch bei Sonderzeichen, danach Sonderzeichen löschen und bestimmte Zeilen löschen die mit einem Wert beginnen
Hallo zusammen,
habe mal wieder ein kleines Problem und hoffe auf eure Hilfe:
Ich habe eine Textdatei, die wie folgt ausschaut (Beispiel):
123, 456789,01/02/03;25,1,27
123, 4512313789,01/02/03;25,1,27
123, 456124,01/02/03;25,1,27
123, 45645489,01/02/03;25,1,27
123, 456454589,01/02/03;25,1,27
131;231145;01/11/166;96,00;1;198@21;23076;0111/611;12,0;72
933, 34241 123132 ,13213131
933, 34241 123132 ,13213131
933, 34241 123132 ,13213131
Das @ Zeichen wurde eingefügt, um zu erkennen, wo ein Zeilenumbruch eingefügt werden soll.
Außerdem sollen die Zeilen, welche mit 933 beginnen vollständig gelöscht werden.
Der Text soll dann am Ende so aussehen:
123, 456789,01/02/03;25,1,27
123, 4512313789,01/02/03;25,1,27
123, 456124,01/02/03;25,1,27
123, 45645489,01/02/03;25,1,27
123, 456454589,01/02/03;25,1,27
131;231145;01/11/166;96,00;1;198
21;23076;0111/611;12,0;72
Also folgende 3 Punkte:
1. Nach einem @ soll ein Zeilenumbruch eingefügt werden
2. Das @ soll gelöscht werden
3. Alle Zeilen mit dem Inhalt beginnend 933 sollen gelöscht werden.
Ich hoffe ihr könnt mir helfen.
LG tekken
habe mal wieder ein kleines Problem und hoffe auf eure Hilfe:
Ich habe eine Textdatei, die wie folgt ausschaut (Beispiel):
123, 456789,01/02/03;25,1,27
123, 4512313789,01/02/03;25,1,27
123, 456124,01/02/03;25,1,27
123, 45645489,01/02/03;25,1,27
123, 456454589,01/02/03;25,1,27
131;231145;01/11/166;96,00;1;198@21;23076;0111/611;12,0;72
933, 34241 123132 ,13213131
933, 34241 123132 ,13213131
933, 34241 123132 ,13213131
Das @ Zeichen wurde eingefügt, um zu erkennen, wo ein Zeilenumbruch eingefügt werden soll.
Außerdem sollen die Zeilen, welche mit 933 beginnen vollständig gelöscht werden.
Der Text soll dann am Ende so aussehen:
123, 456789,01/02/03;25,1,27
123, 4512313789,01/02/03;25,1,27
123, 456124,01/02/03;25,1,27
123, 45645489,01/02/03;25,1,27
123, 456454589,01/02/03;25,1,27
131;231145;01/11/166;96,00;1;198
21;23076;0111/611;12,0;72
Also folgende 3 Punkte:
1. Nach einem @ soll ein Zeilenumbruch eingefügt werden
2. Das @ soll gelöscht werden
3. Alle Zeilen mit dem Inhalt beginnend 933 sollen gelöscht werden.
Ich hoffe ihr könnt mir helfen.
LG tekken
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 177752
Url: https://administrator.de/contentid/177752
Ausgedruckt am: 15.11.2024 um 19:11 Uhr
11 Kommentare
Neuester Kommentar
Hallo tekken,
hast du denn keine Anfangsideen?
Hier könntest du bastlas Ansatz nehmen, um die Zeilen zu löschen (bzw. nicht mitzuschreiben) die mit was-auch-immer anfangen.
Und zu deinem 1ten und auch 2ten Punkt kannst du das mal etwas durchackern von bastla.
Wenn dann noch Fragen sind, hilft der Weihnachtsmann
Gruss
Tsuki
hast du denn keine Anfangsideen?
Hier könntest du bastlas Ansatz nehmen, um die Zeilen zu löschen (bzw. nicht mitzuschreiben) die mit was-auch-immer anfangen.
Und zu deinem 1ten und auch 2ten Punkt kannst du das mal etwas durchackern von bastla.
Wenn dann noch Fragen sind, hilft der Weihnachtsmann
Gruss
Tsuki
Aloha,
versuche es doch einmal hiermit:
greetz André
P.S.: unsere schöne Codeformatierung ist
edit:
Ich fühle mich ohne e immer so leicht wie eine Feder an den einen Asterix-Film denken muss
versuche es doch einmal hiermit:
@echo off & setlocal
(for /f "tokens=1,* delims=@" %%s in ('findstr /v /B "933," "E:\Skripte\test.txt"') do (
echo %%s
set "end=%%t"
if defined end echo %%t
))>%temp%\neu.txt
pause
goto :eof
greetz André
P.S.: unsere schöne Codeformatierung ist
edit:
Ich fühle mich ohne e immer so leicht wie eine Feder an den einen Asterix-Film denken muss
Nun gut, du hast dich für Batch entschieden. Das geht auf jeden Fall auch!
Ich allerdings würde es in VBS machen (ist Geschmackssache!)
Um mal mit bastlas Beispiel anzufangen und zu es zurecht zuschneidern:
Zum Zeilen weglöschen kannst du das hier nehmen und auch gleich noch ersetzen (replacen):
Du musst noch den Pfad und Dateinamen anpassen und das ganze mal Testen (habe ich jetzt nicht gemacht).
Im Prinzip is das die Skizze in VBS
Gruss vom Weihnachtsmann
[Edit]
Skye ist ja auch schon zur Hilfe herbeigeeilt
[/Edit]
Ich allerdings würde es in VBS machen (ist Geschmackssache!)
Um mal mit bastlas Beispiel anzufangen und zu es zurecht zuschneidern:
Zum Zeilen weglöschen kannst du das hier nehmen und auch gleich noch ersetzen (replacen):
Set fso = CreateObject("Scripting.FileSystemObject")
DateiEin = "D:\Datei.txt"
DateiAus = "D:\Datei_neu.txt"
T = Split(fso.OpenTextFile(DateiEin).ReadAll, vbCrLF)
Set Ausgabe = fso.CreateTextFile(DateiAus, True)
For Each Z In T
Z = replace(Z, "@", vbcrlf)
If Left(Z, 3) <> "933" Then Ausgabe.WriteLine Z
Next
Ausgabe.Close
Du musst noch den Pfad und Dateinamen anpassen und das ganze mal Testen (habe ich jetzt nicht gemacht).
Im Prinzip is das die Skizze in VBS
Gruss vom Weihnachtsmann
[Edit]
Skye ist ja auch schon zur Hilfe herbeigeeilt
[/Edit]
Aloha,
ganz ehrlich: man könnte jetzt nach einem unserer Tutorials mit einer FOR F mit einer variabelen Anzahl Tokens an Laufvariablen/Tokens arbeiten und die Schleife weiterstricken ... oder Unterschleifen/-programme entwerfen ...
oder du nimmst TsukiSans VBScript, das auch für deinen erweiterten Fall seine Arbeit ordnungsgemäß verrichtet
greetz André
P.S.: ... kommt davon, wenn man nicht den vollen Umfang in den EP packt ^__^
ganz ehrlich: man könnte jetzt nach einem unserer Tutorials mit einer FOR F mit einer variabelen Anzahl Tokens an Laufvariablen/Tokens arbeiten und die Schleife weiterstricken ... oder Unterschleifen/-programme entwerfen ...
oder du nimmst TsukiSans VBScript, das auch für deinen erweiterten Fall seine Arbeit ordnungsgemäß verrichtet
greetz André
P.S.: ... kommt davon, wenn man nicht den vollen Umfang in den EP packt ^__^