cjackson
Goto Top

Zeichen am Ende einer Zeile hinzufügen

und "," durch "." ersetzen.

Hallo,
ich hab ein kleines Problem. Ich hab eine .txt Datei bei der ich am Ende jeder Zeile ";;" (2 Semikolon) hinzufügen soll. Außerdem sollen die "," mit "." ersetzt werden zur Not über Suchen und Ersetzen.

Kann mir jemand helfen und mir sagen wie ich eine kleine Batch Datei schreib oder ein Makro mach?

Mit freundlichen Grüßen
Jackson

Ps.: Dank euch schon einmal im Voraus.

So sieht eine Zeile im Moment aus "9;10041037;0,36" und so sollte sie aussehen "9;10041037;0.36;;"

Content-ID: 66821

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

Ausgedruckt am: 26.11.2024 um 05:11 Uhr

bastla
bastla 22.08.2007 um 14:20:48 Uhr
Goto Top
Hallo CJackson und willkommen im Forum!

Versuch es einmal so:
@echo off & setlocal
set "Alt=D:\Alt.txt"  
set "Neu=D:\Neu.txt"  
if exist "%Neu%" del "%Neu%"  
for /f "usebackq delims=" %%i in ("%Alt%") do set "Zeile=%%i" & call :ProcessLine  
goto :eof
:ProcessLine
echo %Zeile:,=.%;;>>"%Neu%"  
goto :eof

Grüße
bastla

P.S.: Dein Beitrag würde eher in "Entwicklung / Programmiersprachen / Batch & Shell" passen ...
P.P.S.: Allerdings solltest Du dort nicht Dank euch schon einmal im Vorraus. schreiben, und schon gar nicht mit "rr" ... face-wink
CJackson
CJackson 22.08.2007 um 14:40:22 Uhr
Goto Top
Thx funktioniert! gibt es eine Möglichkeit ? das mich die .bat nach dem Speicherort der Datei frägt, sodass ich die Batch nicht immer abändern muss?

mfg jackson
bastla
bastla 22.08.2007 um 14:53:33 Uhr
Goto Top
Hallo CJackson!

... Möglichkeit ? das mich die .bat nach dem Speicherort der Datei frägt ...
Mehrere; üblicherweise würde man/frau die beiden Dateipfade beim Aufruf mitliefern, also etwa so starten:
ConvertAndAdd2Semicolons.bat D:\Alt.txt D:\Neu.txt
Der Code sähe so aus:
@echo off & setlocal
set "Alt=%~1"  
set "Neu=%~2"  
if exist "%Neu%" del "%Neu%"  
for /f "usebackq delims=" %%i in ("%Alt%") do set "Zeile=%%i" & call :ProcessLine  
goto :eof
:ProcessLine
echo %Zeile:,=.%;;>>"%Neu%"  
goto :eof
Wenn Du wirklich gefragt werden wolltest, müsstest Du die Zeilen 2 und 3 auf etwas in dieser Art ändern:
set /p "Alt=Originaldatei?_"  
set /p "Neu=Konvertierte Datei?_"  
Vielleicht noch eine Variante 3 dazu:
set "Neu=%~1"  
set "Alt=%Neu%.bak"  
move "%Neu%" "%Alt%"  
Hier würde automatisch die Originaldatei mit dem Zusatz ".bak" versehen als Sicherungskopie gespeichert bleiben - Vorteil: Da nur ein Parameter übergeben werden muss, könnte auch Drag&Drop verwendet werden.

Grüße
bastla
CJackson
CJackson 22.08.2007 um 15:19:00 Uhr
Goto Top
Sry hab mich glaub ich ein wenig falsch geäußert. Möchte eigtl. ein richtiges grafisches Window wie beim öffnen oder abspeichern einer Datei. Bei dem ich auch den Arbeitsplatz usw.. seh und auswählen kann. Ist das Möglich? Wenn ja wie?

Danke mfg jackson
bastla
bastla 22.08.2007 um 15:26:26 Uhr
Goto Top
Hallo CJackson!

Ist das Möglich? Wenn ja wie?
Ja; mit VBScript oder VBA ...

... oder, in Ansätzen, mit der oben beschriebenen Variante 3 (Auswahl aus dem Explorer).

Grüße
bastla
CJackson
CJackson 22.08.2007 um 15:28:33 Uhr
Goto Top
ok thx. dann brauch ich es nicht unbedingt.

Ist es für dich möglich mir diese Zeile als 1.Zeile einzufügen in die konv. Datei?

"Position;Artikelnummer;Menge;Freier Text;Freier Text"

hinter diese soll aber kein ";;"

Mfg Jackson
bastla
bastla 22.08.2007 um 15:34:52 Uhr
Goto Top
@echo off & setlocal
set "Alt=%~1"  
set "Neu=%~2"  
echo Position;Artikelnummer;Menge;Freier Text;Freier Text>"%Neu%"  
for /f "usebackq delims=" %%i in ("%Alt%") do set "Zeile=%%i" & call :ProcessLine  
goto :eof
:ProcessLine
echo %Zeile:,=.%;;>>"%Neu%"  
goto :eof
CJackson
CJackson 22.08.2007 um 19:37:53 Uhr
Goto Top
Hi kannst du VBA auch? Wenn ja könntest du nicht ein bissl für mich vba programmieren?

lg Jackson
bastla
bastla 22.08.2007 um 19:56:38 Uhr
Goto Top
Hallo CJackson!

Falls ich die Aufgabenstellung interessant finde und genug Zeit und Lust dazu habe, werde ich Dir gerne auch bei VBA-Problemen Hilfestellung geben - für Dich zu programmieren wäre allerdings Aufgabe eines Vertragspartners ...

Grüße
bastla
CJackson
CJackson 22.08.2007 um 22:17:22 Uhr
Goto Top
thx also ich versuchs zuerst mal selbst und meld mich wieder sollte ich hilfe brauchen.
CJackson
CJackson 30.08.2007 um 07:53:44 Uhr
Goto Top
Nochmals Thx @ bastla. Es funktioniert.
LG CJACKSON