![]() |
ASCII Text-Dateien mit Delphi 2010
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:
Ich habe nun bereits unter Delphi2010 verschiedenste Sachen probiert, allerdings 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; bekomme ich nur ANSI-Dateien, die die Umlaute falsch darstellen oder komplett nicht leserlich sind.
Delphi-Quellcode:
liefert nur Fragezeichen in der Datei.
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;
Delphi-Quellcode:
Stellt die Umlaute falsch dar.
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; Was mache ich falsch? Kann mir jemand helfen? Grüße Christian Matusch |
AW: ASCII Text-Dateien mit Delphi 2010
Hallo,
nimm mal AnsiString statt String, mindestens für szDaten und szTest Heiko |
AW: ASCII Text-Dateien mit Delphi 2010
Deklariere mal folgenden Typ
Delphi-Quellcode:
und verwende den als Typ für szDaten in der Deklaration von FileSchreiben.
type
TOemString = type AnsiString(437); Delphi wird dann automatisch die nötige Konvertierung vornehmen. Mit der Warnung eines möglichen Datenverlustes musst du allerdings leben, das liegt in der Natur der Sache. |
AW: ASCII Text-Dateien mit Delphi 2010
Hallo,
@hoika Die Sache mit AnsiString statt String hatte ich schon erfolglos probiert. @Uwe Raabe Die Lösung mit TOemString = type AnsiString(437) klappt prima. Vielen Dank! Grüße Christian Matusch |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz