On 10/11/2011 10:11 PM, Hans-Peter Diettrich wrote:

(a) Sorry, but this does not answer the question I tried to ask (Difference between a possible type called RawByteString and a basic "new string" variable that happens to be set to the Encoding ID "RawByte").

When I have a variable of type AnsiString, and assign an string to it, then its encoding is reported as 1252 (my system codepage). On Paul's machine it will have a different encoding, I assume?

Via personal consulting ( :) ) I learned that the multiple new Pascal - string - types just are a kind of syntax-candy for an underlying common dynamically typed (and functioning in that way) string type. Seemingly when allocated theses strings get an appropriate encoding ID that is effective even with a zero length.

Seemingly (other than I assumed) a " := " between new strings does not preserve the encoding, but performs an encoding conversion to the target's encoding ID.

So for preventing a conversion, you need to make sure that the target has the same (or a compatible) encoding ID as the source. (Either by using the appropriate string types (hoping the the encoding ID has not been changed ) or by using SetCodePage.) I suppose there also is a function that is done to do a "pure" code-ID preserving assignment.

I suppose a variable of the type "String" is pre-loaded with the predefined "System" encoding ID.

-Michael
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to