Thema: Delphi ASCII <-> ANSI

Einzelnen Beitrag anzeigen

Benutzerbild von X-Dragon
X-Dragon

Registriert seit: 14. Jan 2003
Ort: Schortens
289 Beiträge
 
Delphi 6 Enterprise
 
#4
  Alt 5. Dez 2003, 11:06
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?
  Mit Zitat antworten Zitat