Umlaute von DOS nach Windows und umgekehrt


Falls Sie Texte anzeigen oder verarbeiten möchten, die unter DOS erzeugt wurden, werden Umlaute und Sonderzeichen nicht korrekt dargestellt. Abhilfe schaffen hier API- Aufrufe. Die 16-Bit Funktionen lauten AnsiToOem und OemToAnsi. Die gleichen 32-Bit Funktionen lauten CharToOem und OemToChar. Neuere Programme, die mit 32-Bit arbeiten (ab Delphi 2), sollten die 32-Bit Funktionen verwenden. Die 16-Bit Versionen sind nur zur Abwärtskompatiblität vorhanden und sollten nur bei 16-Bit Programmen (Delphi 1) verwendet werden. Mit den unten abgebildeten Funktionen sind Sie in der Lage, Strings komfortabel von DOS nach Windows (AsciiToAnsi) und umgekehrt (AnsiToAscii) zu konvertieren. Falls Sie ein 16-Bit Programm schreiben, dann müssen Sie die 32-Bit Funktionen gegen die jeweiligen 16-Bit Funktionen austauschen.

function AsciiToAnsi(AsciiStr: string): string;
var AnsiStr: string;
begin
  SetLength(AnsiStr, Length(AsciiStr));
  if Length(AsciiStr) > 0 then OemToChar(PChar(AsciiStr), PChar(AnsiStr));
  AsciiToAnsi:= AnsiStr;
end;

function AnsiToAscii(AnsiStr: string): string;
var AsciiStr: string;
begin
  SetLength(AsciiStr, Length(AnsiStr));
  if Length(AnsiStr) > 0 then CharToOem(PChar(AnsiStr), PChar(AsciiStr));
  AnsiToAscii:= AsciiStr;
end;