Кстати, в XE2 ансишные строки тоже с изюминкой - они содержат кодовую страницу и если задействовать её, можно получить плюшки. К примеру, если вместо простого AnsiString использовать:
- Код: Выделить всё
{$ifdef UNICODE}
RawUTF8 = type AnsiString(CP_UTF8); // Codepage for an UTF8string
{$else}
RawUTF8 = type AnsiString;
{$endif}
... то при всех преобразованиях UnicodeString -> RawUTF8 мы не потеряем данных и не получим нечитаемых символов.
Плюс, есть такая штука:
- Код: Выделить всё
RawByteString = type AnsiString($FFFF);
это ансишная строка без какой-либо кодовой страницы. Можно использовать, там где используются строки для передачи данных (вместо TStream). Такое по-моему в JNXLib.pas сделано. А пример использования можно в LibTar.pas посмотреть.