Einzelnen Beitrag anzeigen

epos

Registriert seit: 27. Dez 2006
2 Beiträge
 
Delphi 11 Alexandria
 
#1

ASCII Text-Dateien mit Delphi 2010

  Alt 23. Jul 2010, 15:50
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
  Mit Zitat antworten Zitat