![]() |
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.
|
AW: AnsiString zu String und umgekehrt
Zitat:
Delphi-Quellcode:
alles erledigt ist.
MeinIrgendwasstring:=MeinetwasandereString;
Wenn man allerdings weiß was man tut spricht nichts gegen UTF8 in WideStrings. Gruß K-H |
AW: AnsiString zu String und umgekehrt
Zitat:
Theoretisch kann man allen möglichen Unsinn machen, aber sinnvoll ist soetwas eben nicht. |
AW: AnsiString zu String und umgekehrt
Zitat:
Delphi-Quellcode:
Eine beliebige Datei zu lesen. Und hier geistern eine Anfragen herum, warum denn da kein lesbarer Text herauskommt. Kann ja nicht, ist ja eine Echse:stupid:
Tstringlist.Readfromfile
"Aber das ist doch String" ist dann die Antwort. "String" ist eben auch nur eine Datenstruktur, die Interpretation bleibt anderen vorbehalten. Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:17 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