Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.27;
Скачать: CL | DM;

Вниз

unicode save   Найти похожие ветки 

 
race1 ©   (2003-11-16 17:41) [0]

попалася мне такой кусок ф-ции загрузки unicode строки из файла:

var
i, StringSize: Integer;
FieldData: array [1..WMA_MAX_STRING_SIZE * 2] of Byte;
str: string;
ch: WideChar;
begin
{ Read field data and convert to Unicode string }
str := "";
Result := "";
StringSize := DataSize div 2; // ??? unicode
if StringSize > WMA_MAX_STRING_SIZE then
StringSize := WMA_MAX_STRING_SIZE;
Source.ReadBuffer(FieldData, StringSize * 2);
Source.Seek(DataSize - StringSize * 2, soFromCurrent);

for i := 1 to StringSize do
begin
ch := WideChar(FieldData[i * 2 - 1] + (FieldData[i * 2] shl 8));
if ch <> #0 then
str := str + ch;
end;

Result := str;

как бы мне таким же способом записать в файл unicode строку, что бы эта ф-ция такой файл прочитала?


 
Ломброзо ©   (2003-11-16 18:10) [1]

var F: File of WideChar


 
race1 ©   (2003-11-16 18:11) [2]

всё это дело пишеться в стрим, а не в отдельный юникодный файл


 
Ломброзо ©   (2003-11-16 18:24) [3]

какая разница? стрим-поток-массив? кучка байт, если абстрактно. Главное ведь - что? Дадададад, приньципъ! Напейшшите наследника от TMemoryStream/TFileStream, который будет не по одному байту, а по два в себя читать-пейсать.


 
race1 ©   (2003-11-17 15:23) [4]

ха! тут фишка такая есть.
ch := WideChar(FieldData[i * 2 - 1] + (FieldData[i * 2] shl 8));

эквивалентно
ch := WideChar(FieldData[i * 2 - 1] + 0));

вобщем, пишем widechar, а после него 0, widechar-0 и т.д. :)



Страницы: 1 вся ветка

Текущий архив: 2003.11.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
1-89846
mmmaloy
2003-11-16 18:52
2003.11.27
Не работает Find в TStringList


1-89995
Olivka
2003-11-17 10:21
2003.11.27
tDBGridEh


1-89906
Frol
2003-11-12 01:10
2003.11.27
Вычисление определенного интеграла


3-89680
Petrovick
2003-11-06 14:48
2003.11.27
Где можно скачать статью или пример работы с АДО


7-90142
mr_All
2003-09-17 11:08
2003.11.27
Как определить произошла ли регистрация любого пользователя ?