![]() |
AnsiString zu String und umgekehrt
Hallo Leute,
ich habe nur kurz eine Frage und zwar die Umwandlung von AnsiStrings zu Strings und umgekehrt. es kommt bei Delphi ja die Meldung "Implizite String-Umwandlung von 'AnsiString' zu 'string'" ich habe mir folgende Routine gedacht
Delphi-Quellcode:
kann mir dann diese Routine sozusagen in die Suppe spucken oder macht diese dann eher keine Probleme?
Function ChangeAnsiStringToString(S:AnsiString):String;
begin Result:=EmptyStr; if S <> EmptyAnsiStr then begin Result:= String(S); end; end; |
AW: AnsiString zu String und umgekehrt
Sorum sollte es keine Probleme geben.
Delphi-Quellcode:
Ob nun implizit (
Function ChangeAnsiStringToString(const S: AnsiString): String; inline;
begin Result := String(S); end;
Delphi-Quellcode:
) oder explizit (
S := A;
Delphi-Quellcode:
),
S := string(A);
am Ende kommt das Selbe bei raus, nur daß beim Expliziten der Compiler nicht meckert, weil man ihm damit sagt, daß es Absicht ist. Intern wird einfach nur ![]() PS: Man könnte solche Compilermeldungen auch "einfach" deaktiveren. |
AW: AnsiString zu String und umgekehrt
Jo, 1Byte passt immer in einen 2-Byte-Typ, aber nicht anders herum.
|
AW: AnsiString zu String und umgekehrt
Immer nicht unbedingt.
ANSI ist ja MultiByte ... Einheiten zu einem Byte, aber mehrere Bytes kombinierbar, was vorallem die Asiaten ausnutzen, oder z.B. auch das UTF-8 Ins UCS2 würde es also nicht immer passen, da dessen Umfang beschränkter ist, als beim UTF-8, aber beim UTF-16 ('ner Art Erweiterung des UCS2) sieht es wieder anders aus, auch wenn das UTF-16 strukturmäßig mit UFT-8 nix zu tun hat, genauso wie das UTF-7 auch nicht. |
AW: AnsiString zu String und umgekehrt
Zitat:
|
AW: AnsiString zu String und umgekehrt
Vielen Danke erstmal für die schnelle Info :-)
|
AW: AnsiString zu String und umgekehrt
Zitat:
|
AW: AnsiString zu String und umgekehrt
Zitat:
Und UTF8 passt nun wirklich überhaupt nicht in einen WideString. Ein UTF-8 Charakter kann eine ungerade Anzahl Bytes haben, und das passt überhaupt nicht zu einem WideString. |
AW: AnsiString zu String und umgekehrt
Zitat:
Sherlock |
AW: AnsiString zu String und umgekehrt
WideString ist ein nicht von der Delphi RTL verwalteter Typ. Um den Inhalt muss sich das Programm kümmern.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz