On 11 Nov 2009, at 11:04, Michael Schnell wrote:
What about case sensitivity with "if str1=str2 then ..." ?
The "=" operator for strings has always performed a simply byte-wise
comparison until now, and presumably keeps acting the same in Delphi
2009 with the new UnicodeStrings. Custom string comparisons require
helper routines (such CompareText and friends), because there are a
lot of different options that you can require (numeric vs lexical vs
raw byte comparisons, case sensitive/insensitive, ignoring diacritics
or not, treating decomposed and composed code points the same or
not, ...). You cannot shoehorn all of that on a single operator.
Strings are a perfect tool to just store some values, disregarding any
encoding. Something like dynamic arrays but with the benefit of
reference counting
Dynamic arrays are reference counted.
and using standard objects like TStringList.
It would also be useful if you could store strings into a set
(transparent hash set!), but that does not mean that every possible
data structure for every possible data type should be built into the
language. There is no inherent reason why you cannot easily create
tstringlist-like functionality for dynamic arrays.
AFAIK, the recent Delphi provides a completely new object for that
purpose, which I do think is not necessary at all, and braking a lot
of
existing code.
I have not heard about this. Not to mention that changing strings into
a hypothetical rawdwordstring would also break existing code, so I
don't see how that's better or worse in that respect.
Jonas
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel