Einzelnen Beitrag anzeigen

Rolf Frei

Registriert seit: 19. Jun 2006
647 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: AnsiString speichern und laden

  Alt 11. Mär 2021, 19:00
Du kannst da eifnach eine Typecast auf AnsiString machen:

Delphi-Quellcode:
var
  MeinAnsiStr: AnsiString;
  MeineBytes: TBytes;
begin
  MeinAnsiStr := AnsiString(Memo1.Lines.Text); // Kann zu Zeichenverlust führen, wenn ein Zeichen nicht im ANSI untersützt wird!
  MeineBytes := BytesOf(MeinAnsiStr);
  ...
end;
Du musst da aber aufpassen, denn wenn dein Memo Unicodezeichen enthält, die es im ANSI nicht gibt, wirst du da an der Stelle ein "?" haben. Da musst dir gründlich überlegen, ob du das da nicht anderst machen willst, damit keine Konvertierung Unicode/ANSI stattfinden muss.

Du könntest ja auch einfach alles als Unicode nutzen und verschlüsseln.

MeineBytes := BytesOf(Memo1.Lines.Text); In diesem Fall hast du ein ByteArray aus Unicodezeichen, also in der Regel sowas wie 40 00 45 00... Das könnte ja deine Routine auch auf Bytebene (wie bisher AnsiChar) vershlüsseln. StringOf(MeineBytes) macht dann übrigens das Gegenteil, also aus TBytes wieder ein String.

Geändert von Rolf Frei (11. Mär 2021 um 19:09 Uhr)
  Mit Zitat antworten Zitat