Hallo,
das Thema
ASCII/
ANSI/
Unicode wurde zwar hier schon häufig behandelt, ich habe jedoch keine
Lösung meines Problems gefunden.
Ich möchte von Delphi5 auf Delphi2010 umsteigen.
Der vorhandene Code schreibt DOS-
ASCII Dateien.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
szTest: String;
begin
szTest := StringOfChar(' ', Length(Edit1.Text));
CharToOem(PChar(Edit1.Text), PChar(szTest));
FileSchreiben('K:\TestD5.txt', szTest, 1, true);
end;
function TForm1.FileSchreiben(szDateiname: String;
szDaten: String;
nStart: Integer;
bZeile: Boolean): Boolean;
var
FibuFile: TextFile;
begin
Result := true;
try
AssignFile(FibuFile, szDateiname); // Variable mit Datei verbinden
if not FileExists(szDateiname) then
begin
// Datei anlegen da nicht vorhanden
Rewrite(FibuFile);
CloseFile(FibuFile);
end
else
begin
if (nStart = 1) then
begin
// Datei löschen wenn vorhanden
DeleteFile(szDateiname);
// Datei neu anlegen
Rewrite(FibuFile);
CloseFile(FibuFile);
end;
end;
// Datei zum Anhängen öffnen
Append(FibuFile);
if (IOResult <> 0) then
Exit;
if bZeile then
Writeln(FibuFile, szDaten)
else
Write(FibuFile, szDaten);
CloseFile(FibuFile);
except
Result := false;
end;
end;
Ich habe nun bereits unter Delphi2010 verschiedenste Sachen probiert, allerdings
bekomme ich nur
ANSI-Dateien, die die Umlaute falsch darstellen oder komplett
nicht leserlich sind.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
szTest: String;
begin
szTest := StringOfChar(' ', Length(Edit1.Text));
CharToOem(PChar(Edit1.Text), PAnsiChar(szTest));
FileSchreiben('K:\TestD2010.txt', szTest, 1, true);
end;
liefert nur Fragezeichen in der Datei.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
szTest: String;
begin
szTest := StringOfChar(' ', Length(Edit1.Text));
szTest := Edit1.Text;
FileSchreiben('K:\TestD2010.txt', szTest, 1, true);
end;
Stellt die Umlaute falsch dar.
Was mache ich falsch? Kann mir jemand helfen?
Grüße
Christian Matusch