Moin Hansa,
das hättest Du mit AnsiUpperCase aber einfacher haben können
Die Funktion erledigt das mit einem Aufruf.
Bevor ich OemToChar kannte hab' ich's, im Prinzip, mal so gelöst:
Code:
[b]function[/b] DosToWin([b]const[/b] p_sLine : [b]string[/b]) : [b]string[/b];
[b]begin[/b]
Result := StringReplace(p_sLine,chr($84),'ä',[rfReplaceAll]);
Result := StringReplace(p_sLine,chr($94),'ö',[rfReplaceAll]);
Result := StringReplace(p_sLine,chr($81),'ü',[rfReplaceAll]);
Result := StringReplace(p_sLine,chr($8E),'Ä',[rfReplaceAll]);
Result := StringReplace(p_sLine,chr($99),'Ö',[rfReplaceAll]);
Result := StringReplace(p_sLine,chr($9A),'Ü',[rfReplaceAll]);
Result := StringReplace(p_sLine,chr($E1),'ß',[rfReplaceAll]);
[b]end[/b];
Absolut nicht ideal, aber tut's.
Leider kostet der Komfort bei der Stringverarbeitung in Delphi ziemlich viel Zeit. Deshalb bin ich inzwischen mehr auf Pointer bzw. Assembler ausgewichen, wenn es um umfangreichen Stringverarbeitung geht.
Das spart Laufzeit ohne Ende.