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

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

TFileStream и TMemoryStream [D6, WinXP]


Anatoly P ©   (2002-10-23 15:11:00) 

Хочу записать значение ms(TMemoryStream) в файл, а потом извлечь.

Запись:
var
FS:TFileStream;
ms:TMemoryStream;
ii:integer;
.........
fs:=TFileStream.Create("c:\111111.fff",fmCreate);

ms:=TMemoryStream.Create;
.....

ii:=ms.Size;
fs.WriteBuffer(ii,sizeof(ii));// пишу длину ms
ms.Position:=0;
fs.WriteBuffer(pointer(ms)^,ms.Size);// пишу саму ms

ms.Free;
fs.Free;

А прочитать не могу, как лечить?
fs:=TFileStream.Create("c:\111111.fff",fmOpenRead);
fs.ReadBuffer(ii,sizeof(ii));
ms2:=TMemoryStream.Create;
// ms2.Position:=0;
fs.ReadBuffer(ms2 ,ii);/// ошибка
......
ms.free;
fs.Free;

Не мешало бы проверить и запись, может и там ошибки


Anatoly P   (2002-10-23 16:17:00) [1]

Cпасибо MBo © - заработало
>>Skier © - это для хранения нескольких RichText в одном файле


Skier   (2002-10-23 15:28:00) [2]

>Anatoly P
Если ты объяснишь конечную цель твоего кода, то
помогать тебе будет легче...


MBo   (2002-10-23 15:26:00) [3]

Кстати, TMemoryStream.LoadFromFile и SaveToFile
не будет достаточно?


Демонов Е.В.   (2002-10-23 15:25:00) [4]

Здается мне что здесь что то не то
в
fs.WriteBuffer(pointer(ms)^,ms.Size);
и
fs.ReadBuffer(ms2 ,ii)

??? Хотя


MBo   (2002-10-23 15:22:00) [5]

> fs.WriteBuffer(pointer(ms)^,ms.Size);// пишу саму ms
это ошибка
CopyFrom используй

>fs.ReadBuffer(ms2 ,ii);///
И здесь тоже


Наверх

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