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