Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - umlaute in Batch dateien!
LDMatrix17 - Fr 24.03.06 16:08
Titel: umlaute in Batch dateien!
Hallo leute! bin mal wieder ;)
warum kann ich keine umlaute wie ä,ü,ö in Batch(*.Bat) Dateien benutzen??
ich habe versucht mit
@Echo off
Chcp 1252
Xcopy C:\lolmenü\*.* d:\
....
....
Chcp 850
trotzdem!! geht nicht!!
:roll:
azubi_20 - Fr 24.03.06 16:24
Windows und DOS haben einen unterschiedlichen Tabellensatz
Schreib deinen Batch mit "edit" (Ausführen->edit). Dann wird er im DOS-Zeichenstz geschrieben.
LDMatrix17 - Fr 24.03.06 16:42
ne! da habe ich schon wieder nen problem!
weil ich die datei aus Delphi gespeichert habe!
soO memo.lines.SavetoFile('asdasd.bat') :oops:
azubi_20 - Fr 24.03.06 16:54
Dann musst du die Datei vorher mit vom ANSI- in den ASCII-Zeichensatz umwandeln.
z.B. so :
Delphi-Quelltext
1: 2: 3: 4:
| procedure AnsiToAscii(var S: string); begin CharToOemBuff(Pointer(S), Pointer(S), Length(S)); end; |
Es gibt aber auch noch andere Methoden, einfach mal
GOOGLEN :)
LDMatrix17 - Fr 24.03.06 17:17
Kannst du mir bitte ein kleines Beispiel geben?
MFG
Christian
azubi_20 - Fr 24.03.06 17:25
alle zeilen durchgehen (memo.lines.count)
von memo.lines kannst du dir die Zeile als String holen
String umwandeln in ASCII (z.B. mit oben genannter funktion)
speichern
LDMatrix17 - Fr 24.03.06 17:42
:roll: kommt immer fehlermeldung!!
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| S := 'Xcopy g:\meine Daten\Kontoauszüge\*.* d:\'; For I := 1 to length(s) do begin CharToOemBuff(Pointer(s),Pointer(s),Length(S[i])); end; memo1.Lines.Add(S); memo1.Lines.SaveToFile('C:\test.bat'); |
Bitte lach mich nicht aus ;)
ich habe das mit ansi nach ascii wirklich nicht kapiert! :cry:
Christian
Moderiert von
UGrohne: Beitragsformatierung überarbeitet.
0xCC - Fr 24.03.06 18:06
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| procedure TForm1.Button1Click(Sender: TObject);
function AnsiToAscii(s: string):string; begin setlength(result, length(s)); CharToOemBuff(@s[1], @result[1], length(s)); end;
const sourcepath = 'e:\löl'; targetpath = 'e:\lül'; batchfile = 'e:\etest.bat';
var s: string; temp: Tstringlist; src, target : string; begin src := AnsiToAscii(sourcepath); target :=AnsiToAscii(targetpath); s := 'echo *** batch-test ***'#13#10'Xcopy "' + includetrailingbackslash(src) +'*.*" "' + includetrailingbackslash(target) + '"'; temp := tstringlist.create; temp.Text := s; temp.SaveToFile(batchfile); temp.Free; end; |
die funktion von meinem vorgänger führte übrigens aus verständlichen gründen zu einer zugriffsverletzung.
LDMatrix17 - Fr 24.03.06 18:44
it's working!!!!
danke sehr!
Christian
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!