Michael Schnell schrieb:
On 01/05/2012 12:32 PM, Marco van de Voort wrote:
In our previous episode, Michael Schnell said:
I found that the length of an "AnsiString(CP_UTF16)" is given in terms
of bytes and not of Words. Is this like it should ?
Yes. Afaik that is not a sane combination, but Delphi compatible.

This really is absolutely insane, as in Delphi (I only have "Turbo"), the length of a WideString is given in terms of word and not of bytes.

This is absolutely sane, because Length() does and always did reflect the number of *elements* of an array, and strings are treated like arrays.

So why introducing major differences in the handling of 16 bit encoded Strings such as - AnsiString(CP_UTF16) (provided CP_UTF16 is previously defined to be 1200)
This one is not supported by Delphi (XE).

 - WideString
This one is required for WinAPI compatibility.

 - UnicodeString (I can't test this)
That's the new generic string type.

- UCS4String
For people who like it ;-)


I feel that much of the Delphi way of handling the "new string"s is hazardous and not worth mimicking and better ways can be found - there have been long discussions on this - (while of course for compatibility, it is important to provide the Delphi-way behavior forced by a compiler option).

The Delphi devlopers have learned what's a good and what's a bad stringhandling model, based on their experience with the Delphi implementation and use. You instead argue based on half-baked ideas, so please stay away from calling other models "insane" :-]


-Michael
(BTW.: I still don't know whether Delphi even introduces the insanity that when assigning, the auto-conversion is decided regarding the actual internal dynamical encoding of the target or if the target's statically given Type name is always used.)

You should understand the difference between (temporary) strings, used in string expression evaluation, and the assignment of an string to a strictly typed variable.

DoDi

_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to