Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

Проклятый WideString!

Привет всем!

Теперь к делу,

Как сохранить (а потом и загрузить) данные переменной типа WideString?
Делаю я так:

//---[save]var
Size: Integer;
URL: WideString;
begin

URL := 'West-Test';

Size := Length(URL);

Stream.Write(Size, SizeOf(Size));
Stream.Write(PWideChar(URL)^, Size);

end;

//---[load]var
Size: Integer;
URL: WideString;
begin

Stream.Read(Size, SizeOf(Size));

SetLength(URL, Size);
Stream.Read(PWideChar(URL)^, Size);

end;

После загрузки вместо долгожданного тест слова "West-Test" появляется
какой то мусор :-((

Что тут можно сделать?

Номер выпуска : 4968
Возраст листа : 748 (дней)
Количество подписчиков : 531
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/451766
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Sat, 8 Oct 2005 14:48:18 +0300 (#451766)

 

Ответы:

Здравствуйте, -=.

Вы писали 8 октября 2005 г., 17:48:18:

Извини, ты сохраняешь 2-а раза а читаешь один! И что хочешь получить
что то читаемоемое?
Попробуй конвертировать в стринг. Как мне кажется TEdit (я не уверен)
может с этим справиться. Во всяком случае я слышал(не видел) , есть
функции конвертации.

Ответить   Sun, 9 Oct 2005 01:34:50 +0600 (#451814)

 

См. описание Length:
"Length returns the number of characters used in a string".
Количество символов, а не байтов.
Для TStream.Write нужен именно размер в байтах, поэтому:

Аналогично для TStream.Read.

В остальном все написано верно, так что должно работать.
Если при записи и чтении используется один поток,
нужно не забыть вернуться к его началу:
Stream.Seek(0,soFromBeginning);

Номер выпуска : 4972
Возраст листа : 749 (дней)
Количество подписчиков : 530
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/452116
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Sun, 9 Oct 2005 14:13:01 +0400 (#452116)