Thema: Delphi Umlaute in Windows

Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#9
  Alt 2. Okt 2002, 17:45
Moin Hansa,

das was in Daniel's Link zu sehen ist, finde ich allerdings etwas aufwändiger, als eine Zeile OemToChar

Mein Beispiel sollte Dir nur zeigen, wie's vor und nach dem Aufruf aussieht.
Du kannst Du Ascii Datei ja auch in einem Rutsch in einen Filestream einlesen, mit OemToChar umwandeln, und wieder zurückschreiben. Die Länge ändert sich ja nicht.
Da auch im Deutschen, z.B. Namen, französische Zeichen enthalten können, halte ich die Beschränkung auf deutsche Umlaute jedenfalls für gefährlich.

So wäre es allgemein brauchbar (ausser für Unicode):

Code:
[b]procedure[/b] TForm1.Button1Click(Sender: TObject);

[b]var[/b]
  fsWork : TFileStream;
  sWork : [b]string[/b];

[b]begin[/b]
  [b]if[/b] OpenDialog1.Execute [b]then[/b]
  [b]begin[/b]
    fsWork := TFileStream.Create(OpenDialog1.FileName,fmOpenRead);
    [b]try[/b]
      sWork := StringOfChar(#00,fsWork.Size);
      fsWork.Read(sWork[1],fsWork.Size);
    [b]finally[/b]
      FreeAndNil(fsWork);
    [b]end[/b];
    OemToChar(@sWork[1],@sWork[1]);
    fsWork := TFileStream.Create(OpenDialog1.FileName+'.conv',fmCreate);
    [b]try[/b]
      fsWork.Write(sWork[1],Length(sWork));
    [b]finally[/b]
      FreeAndNil(fsWork);
    [b]end[/b];
  [b]end[/b];
[b]end[/b];
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat