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

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

Запись в файл и чтение из файла записи: есть запись:


Страницы:   1 2

EgorovAlex ©   (2008-06-16 14:54:00) 

record
 s1,
 s2: PWideChar;
end;

Как мне её записать в файл и потом прочитать из файла?

пробовал так: MS: TMemoryStream;

MS.Write(Rec^, SizeOf(Rec));
MS.Position := 0;
MS.WriteToFile...

но потом при чтении из файла (тоже через мемористрим) не читаются s1 и s2.

Что я не так делаю?


EgorovAlex   (2008-06-16 16:39:00) [21]

т.е. писать так?

Size: Cardinal;

MS.Write(Rec^, SizeOf(Rec));
Size := Length(Rec.s1)*SizeOf(WideChar);
MS.Write(Size, SizeOf(Size));
MS.Write(Rec.s1, Size);
Size := Length(Rec.s2)*SizeOf(WideChar);
MS.Write(Size, SizeOf(Size));
MS.Write(Rec.s2, Size);
MS.Position := 0;
MS.WriteToFile...


Поросенок Винни-Пух   (2008-06-16 16:01:00) [22]

плюс еще записать туда же обе длины чтобы знать сколько читать в последствии


clickmaker   (2008-06-16 15:54:00) [23]

> как записать всё?

также. Write() каждое поле отдельно


EgorovAlex   (2008-06-16 15:52:00) [24]

Я над этим уже поразмышлял :) только как применить пока не понимаю, я понял, что я пишу 2 байта указателей, а не содержимое полей записи, а вот как записать всё?


Поросенок Винни-Пух   (2008-06-16 15:28:00) [25]

Поразмышляй вот над этим:
showmrssage(inttostr(SizeOf(rec)))


Поросенок Винни-Пух   (2008-06-16 15:25:00) [26]

все так. что записал то и считал.


Страницы:   1 2

Наверх

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