D.h. du wirst sowieso deine eigene Mapping-Tabelle implementieren müssen.
Das hab ich ja soweit getan...
Wobei ich das "hoch 3" nicht an der Stelle finde, an der es nach deinem Array hätte sein müssen.
Wie dem auch sei:
Deklariere am besten einfach ein solches Array:
Delphi-Quellcode:
const
CharMappings: array[AnsiChar] of AnsiChar = (
#1, #2, #3, ...
);
Dabei schreibst du ausgehend von der Original-Codepage die Zeichen hin, die an der Stelle in der LCD-Matrix stehen.
Dann brauchst du nämlich nichts prüfen, sondern kannst einfach das machen:
Delphi-Quellcode:
var
i, j: Integer;
AnsiText: AnsiString;
begin
{...}
AnsiText := AnsiString(Text);
//Sonderzeichen auslesen
for i := 1 to Length(Text) do
AnsiText[i] := CharMappings[AnsiText[i]];
{...}
end;
Das mag nicht die optimalste Lösung sein, aber ich denke es ist die übersichtlichste. Denn die Originalzeichen lassen sich so sehr gut als Kommentar jeweils dazuschreiben.