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

How would you determine the byte count for reading and writing text?
e.g. when using a stream. good question. As, AFAIK, this is no more than a yet incomplete project in the svn, I don't know.

So "Length" with this type can be defined as "character count" and copy can work on character length and position, and automatically convert strings if they are coded differently.

I don't like automatic string conversion, because:
Of course certain operations might be really slow if the encoding of the data is not appropriate.

Consider what will happen when every procedure or component has its *own* idea of the "appropriate" encoding...

As always, comfort can be traded against speed. If the user wants speed he needs to take care that as few conversions as possible are done.

If he just uses this string type and does not explicitly enforce encoding no encoding is necessary but on exit and entry of his code. And the same code will work without re-coding for all codes used and entry and exit, provided they all are identical.

E.g. the Windows System API will use UTF-16, while the Linux System API uses UTF-8 for things like "caption" and "Text". The (even binary) unmodified user code will not need to do conversions for this kind of GUI work. (AFAIK, string constants are re-encoded on the first use, if necessary).

-Michael

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to