Zitat von
sakura:
...
P.P.S. Wie willst Du die Konvertierung machen. Keine Theorie, bitte den Code, ich kann testen
Ok wenn du unbedingt was testen willst, ich hab hier was
:
Delphi-Quellcode:
function TFmHaupt.AnsiToIBMAscii(s: String): String;
{**************************************************}
var
i : Integer;
begin
for i := 1 to Length(s) do
case s[i] of
#196: Result := Result + #142; // von Ä
#214: Result := Result + #153; // von Ö
#220: Result := Result + #154; // von Ü
#228: Result := Result + #132; // von ä
#246: Result := Result + #148; // von ö
#252: Result := Result + #129; // von ü
#223: Result := Result + #225; // von ß
else Result := Result + s[i];
end;
end;
oder, was ich gerade gefunden habe:
Delphi-Quellcode:
function ANSI2ASCII(AText:
string):
string;
const MaxLength = 255;
var PText : PChar;
begin
PText:=StrAlloc(MaxLength);
StrPCopy(PText,AText);
{$IFDEF WIN32}
CharToOEM(PText,PText);
{32Bit}
{$ELSE}
AnsiToOEM(PText,PText);
{16Bit}
{$ENDIF}
Result:=StrPas(PText);
StrDispose(PText);
end;
... allerdings ist der Code laut Delphi 6 "veraltet", also "StrDispose" sollte z.B. nicht mehr eingesetzt werden.
Mein Problem ist aktuell das ich eine seeehr große Datenmenge umwandeln muss, allerdings kein Text sondern sehr viele Datensätze (> 200.000 á 7 Felder á ca. 8 Zeichen macht als min. 11 Mio. Zeichen). Was ist denn jetzt wohl schneller (und auch sicher)? Oder weiß jemand eine bessere Möglichkeit?