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-Key: 66821

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

Printed on: April 19, 2024 at 22:04 o'clock

Member: bastla
bastla Aug 22, 2007 at 12:20:48 (UTC)
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
Member: CJackson
CJackson Aug 22, 2007 at 12:40:22 (UTC)
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
Member: bastla
bastla Aug 22, 2007 at 12:53:33 (UTC)
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
Member: CJackson
CJackson Aug 22, 2007 at 13:19:00 (UTC)
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
Member: bastla
bastla Aug 22, 2007 at 13:26:26 (UTC)
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
Member: CJackson
CJackson Aug 22, 2007 at 13:28:33 (UTC)
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
Member: bastla
bastla Aug 22, 2007 at 13:34:52 (UTC)
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
Member: CJackson
CJackson Aug 22, 2007 at 17:37:53 (UTC)
Goto Top
Hi kannst du VBA auch? Wenn ja könntest du nicht ein bissl für mich vba programmieren?

lg Jackson
Member: bastla
bastla Aug 22, 2007 at 17:56:38 (UTC)
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
Member: CJackson
CJackson Aug 22, 2007 at 20:17:22 (UTC)
Goto Top
thx also ich versuchs zuerst mal selbst und meld mich wieder sollte ich hilfe brauchen.
Member: CJackson
CJackson Aug 30, 2007 at 05:53:44 (UTC)
Goto Top
Nochmals Thx @ bastla. Es funktioniert.
LG CJACKSON