Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сохранение строки в TStream


AlexanderSK ©   (2004-06-28 15:56:00) 

Подскажите, пожадуйста, как правильно сохранить строку (String) в TStream?

Заранее благодарен!


wicked   (2004-06-28 17:05:00) [1]

TStringStream...
но в любом случае нужно сначала писать в поток длину строки...


AlexanderSK   (2004-06-28 16:18:00) [2]

Спасибо!


Рамиль   (2004-06-28 16:14:00) [3]

Всетаки, ИМХО, лучше так
Stream.Write(PChar(Str)^, SizeOf(Char) * Length(Str))


Тимохов   (2004-06-28 16:06:00) [4]

Ой!!!
Конечно str[1].

прошу прощения

:(((

Зато второй вариант точно правильный :)))


MBo   (2004-06-28 16:03:00) [5]

FS.Write(Str[1], Length(Str));


Тимохов   (2004-06-28 16:02:00) [6]

написать

...write(str[0], ...)

или

...write(pointer(str)^, ...)


panov   (2004-06-28 16:02:00) [7]

FS.Write(Str[1], Length(Str));


AlexanderSK   (2004-06-28 16:01:00) [8]

>Тимохов ©  (28.06.04 15:57) [1]
Видимо я не очень коррекектно поставил вопрос.
Проблема в следующем:

var
 FS: TFileStream;
 Str: String;

....
 FS.Write(Str, Length(Str));

В итогк в файле получается белеберда!
Подскажите, пожалуйста, как с этим бороться?


Тимохов   (2004-06-28 15:57:00) [9]

запись:
1. 4 байта: длина
2. тело строки

чтение:
1. Читаешь 4 байта длины
2. читаешь в тело строки столько сколько нужно.


Наверх

Титульная страница Поиск, карта сайта Написать письмо