16 битные строки

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
Сквозняк
энтузиаст
Сообщения: 1159
Зарегистрирован: 29.06.2006 22:08:32

16 битные строки

Сообщение Сквозняк »

В третьей версии компилятора добавился новый тип строк

Код: Выделить всё

type
  RawByteString = type AnsiString(CP_NONE);

А для widestring такое есть? Чтобы спокойно писать в строки 16 битные числа и знать что их никто не испортит.
Строки с типом элементов longint, для задания значений массива не только в секции var, тоже пригодились бы, но кто же их такие в паскале разрешит.
SSerge
энтузиаст
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Сообщение SSerge »

imho, не надо делать код, основанный на недекларированном внутреннем устройстве компилятора или библиотек.
Аукнется обязательно.

widestring по логике - разновидность string с кодовой страницей 65001 (UTF16), во всяком случае именно это получается из информации в описаниях. Именно из-за этого преобразование из одной кодировки в другую прямо таки обязательно прилетит в процессе.

з.ы. Мне в свое время стоил большого количества времени участок повторно используемого раннего кода, построенный на совмещении в памяти двух разных структур - из-за выравнивания и разной внутренней реализации real. С тех пор "программистских финтов" стараюсь не делать, ибо со временем: задумка будет обязательно забыта, и проблемы возникнут - причем неожиданно.

Добавлено спустя 7 минут 23 секунды:
WideChar - Constant length: 2 or 4 bytes, representation: 1 character.


об этом не забываем. Если сгенерите "из целых" пару, в которой получится префикс для "4 bytes" символа, получите непредсказуемое.
Сквозняк
энтузиаст
Сообщения: 1159
Зарегистрирован: 29.06.2006 22:08:32

Сообщение Сквозняк »

Отрицательные числа в строчку туда тоже не запихиваются :|
Ответить