![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
свой тип файлов [D7, WinXP]
Green_Templar © (2005-06-08 01:58:00)можно делать file of g, где g=какой-то там рекорд. А у меня есть 3 рекорда разного типа, как их записать в один файл?
Anatoly Podgoretsky (2005-06-09 08:52:00) [1]Antonn © (08.06.05 13:56) [3]
Ну у многих ругается за ошибки. Совет чтобы не ругалось пиши программы без ошибок.
Просто Джо (2005-06-09 04:24:00) [2]А, наверное, 998... Или переполнение стека, если переменная в процедуре объявлялась.
Просто Джо (2005-06-09 04:16:00) [3]
> [3] Antonn © (08.06.05 13:56)
> Anatoly Podgoretsky © (08.06.05 9:08) [2]
> а у меня ругалось, если "TThreeRecords" была больше мегабайта...
Чего у тебя ругалось?
Antonn (2005-06-08 13:56:00) [4]Anatoly Podgoretsky © (08.06.05 9:08) [2]
а у меня ругалось, если "TThreeRecords" была больше мегабайта...
Anatoly Podgoretsky (2005-06-08 09:08:00) [5]TThreeRecords = record
R1: TRec1;
R2: TRec2;
R3: TRec3;
end;
file of TThreeRecords;
Просто Джо (2005-06-08 02:23:00) [6]Да по-разному. Например так:
var
Fv: file;
Rec1: TMyRec1;
Rec2: TMyRec2;
..
BlockWrite(Fv,Rec1,SizeOf(Rec1));
BlockWrite(Fv,Rec2,SizeOf(Rec2));
Или так:
var
Rec1: TMyRec1;
Rec2: TMyRec2;
FS: TFileStream;
begin
Rec1.A := $FD;
Rec1.B := $FF;
FS := TFileStream.Create('i:\test.dat',fmCreate);
try
FS.Write(Rec1,SizeOf(Rec1));
FS.Write(Rec2,SizeOf(Rec2));
finally
FS.Free;
end;
end.
А, возможно, лучше "обернуть" рекорды в классы, каждый со своим методом записи/чтения в/из файла/стрима.