Formatierung eines Textdokumentes wie ein Roboter
Hallo zusammen
Meine Frage betrifft das formatieren von einem Textdokument.
Gegeben: - Massenweise Text aneinander geschrieben .....
Gesucht: - Ein Programm das nach x Buchstaben x tabulatoren einfügt.
Im Text sind zb. Geburtsdaten, Orte, Namen drin ..... alles aneinander und schlussentlich soll es so aussehen
Albert 1.1.1990 Embrach
Berta 2.1.1990 Bülach
Carla 3.1.1990 Zürich
Vorher sah es so aus ..
Albert 1.1.1990, 1.1.1990, Embrach,,, Berta, 2.1.1990, Bülach,,, Carla, 3.1.1990, Zürich,,, ................
Da ich sicher schleifen benutzen muss ist meine
Frage an euch: "Mit welchen Befehlen muss ich hier arbeiten?" :D
Habe schon diverse batch tutorials angeschaut und nichts treffendes gefunden (ausser die schleifen .. ) ....
Danke schon im voraus für eure Antwort
gruss
Alex
Meine Frage betrifft das formatieren von einem Textdokument.
Gegeben: - Massenweise Text aneinander geschrieben .....
Gesucht: - Ein Programm das nach x Buchstaben x tabulatoren einfügt.
Im Text sind zb. Geburtsdaten, Orte, Namen drin ..... alles aneinander und schlussentlich soll es so aussehen
Albert 1.1.1990 Embrach
Berta 2.1.1990 Bülach
Carla 3.1.1990 Zürich
Vorher sah es so aus ..
Albert 1.1.1990, 1.1.1990, Embrach,,, Berta, 2.1.1990, Bülach,,, Carla, 3.1.1990, Zürich,,, ................
Da ich sicher schleifen benutzen muss ist meine
Frage an euch: "Mit welchen Befehlen muss ich hier arbeiten?" :D
Habe schon diverse batch tutorials angeschaut und nichts treffendes gefunden (ausser die schleifen .. ) ....
Danke schon im voraus für eure Antwort
gruss
Alex
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 72939
Url: https://administrator.de/contentid/72939
Ausgedruckt am: 20.11.2024 um 00:11 Uhr
10 Kommentare
Neuester Kommentar
Hallo EMBSDW!
Grüße
bastla
@echo off & setlocal
set "Ein=D:\Alle Geburtstage in einer Zeile.txt"
set "Aus=D:\Geburtstagsliste.txt"
set "Cvt=%temp%\ConvSC.vbs"
echo WScript.Echo Replace(Replace(CreateObject("Scripting.FileSystemObject").OpenTextFile("%Ein%", 1).ReadAll, ";;;", vbCrLF), ";", vbTab)>"%Cvt%"
cscript //nologo "%Cvt%">"%Aus%"
del "%Cvt%"
Grüße
bastla
Hallo EMBSDW!
Könnte ein Codepage-Problem sein (je nach Datenherkunft ASCII/ANSI) - versuch es mit dieser Variante:
Als Anmerkung: Da Dein Beispiel und Deine Beschreibung oben widersprüchlich waren (im Beispiel war das Tennzeichen ein ","/ lt nächstem Post wolltest Du alle ";" durch Tab ersetzt haben) musste ich raten und habe als Trennzeichen ";" verwendet ... [Edit] ... und bin damit daneben gelegen - jetzt also mit "," [/Edit]
Grüße
bastla
Könnte ein Codepage-Problem sein (je nach Datenherkunft ASCII/ANSI) - versuch es mit dieser Variante:
@echo off & setlocal
set "Ein=Z:\Treueabo_tab.csv"
set "Aus=Z:\Endergebnis.txt"
set "Cvt=%temp%\ConvSC.vbs"
echo Set fso=CreateObject("Scripting.FileSystemObject"):fso.OpenTextFile("%Aus%",2,True).Write Replace(Replace(fso.OpenTextFile("%Ein%",1).ReadAll,",,, ",vbCrLF),",",vbTab)>"%Cvt%"
cscript //nologo "%Cvt%"
del "%Cvt%"
Als Anmerkung: Da Dein Beispiel und Deine Beschreibung oben widersprüchlich waren (im Beispiel war das Tennzeichen ein ","/ lt nächstem Post wolltest Du alle ";" durch Tab ersetzt haben) musste ich raten und habe als Trennzeichen ";" verwendet ... [Edit] ... und bin damit daneben gelegen - jetzt also mit "," [/Edit]
Grüße
bastla
Hallo EMBSDW!
startet einfach das in der "echo"-Zeile erstellte VBScript "%temp%\ConvSC.vbs". Wozu das "//nologo" dient, siehst Du, wenn Du es einmal weg lässt ...
Das angesprochene Script
- liest den gesamten Inhalt der Datei %Ein%,
- ersetzt die Kombination ",,, " durch eine Zeilenschaltung, danach
- jedes "," durch Tab und
- schreibt das Ergebnis in die Datei %Aus%.
Da ich nur Dein oben gepostetes Musterbeispiel zur Verfügung hatte (habe), kann ich nicht feststellen, woher die beschriebenen Fehler stammen könnten - dass allerdings bei einer reinen Textdatei ohne irgendwelche enthaltenen Sonderzeichen Textteile abgeschnitten werden, dürfte eigentlich nicht passieren - versuch es aber zur Sicherheit mit der folgende Zeile (als Ersatz für die bisherige "echo"-Zeile):
Grüße
bastla
cscript //nologo "%Cvt%"
Das angesprochene Script
- liest den gesamten Inhalt der Datei %Ein%,
- ersetzt die Kombination ",,, " durch eine Zeilenschaltung, danach
- jedes "," durch Tab und
- schreibt das Ergebnis in die Datei %Aus%.
Da ich nur Dein oben gepostetes Musterbeispiel zur Verfügung hatte (habe), kann ich nicht feststellen, woher die beschriebenen Fehler stammen könnten - dass allerdings bei einer reinen Textdatei ohne irgendwelche enthaltenen Sonderzeichen Textteile abgeschnitten werden, dürfte eigentlich nicht passieren - versuch es aber zur Sicherheit mit der folgende Zeile (als Ersatz für die bisherige "echo"-Zeile):
echo Set fso=CreateObject("Scripting.FileSystemObject"):S=fso.GetFile("%Ein%").Size:fso.OpenTextFile("%Aus%",2,True).Write Replace(Replace(fso.OpenTextFile("%Ein%",1).Read(S),",,, ",vbCrLF),",",vbTab)>"%Cvt%"
Grüße
bastla