![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сохранение строки в 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. читаешь в тело строки столько сколько нужно.