![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запись/чтение динамического массива в/из файла - как?
Vi © (2005-05-21 07:36:00)var a:array[0..10] of longword; <----- если задано статически, то получается -
fileopen, fileseek, fileread(дескриптор файла,a,sizeof(a)); fileclose(дескриптор файла);
если массив создан с setlength = не получается.
как осуществить?
получается только с динамическим массивом байтов...
getmem(dd,sk); fileseek(d,ofs,0); fileread(d,dd^,sk);
Vi (2005-05-21 08:25:00) [1]Спасибо! то что нужно!
charlie (2005-05-21 08:04:00) [2]var
A: array of LongWord;
LW: LongWord;
// запись
with TFileStream.Create('F:\array', fmCreate) do
try
LW := Length(A);
Write(LW, SizeOf(LongWord));
Write(PChar(A)^, LW*SizeOf(LongWord));
finally
Free
end;
//чтение
with TFileStream.Create('F:\array', fmOpenRead) do
try
Read(LW, SizeOf(LongWord));
SetLength(A, LW);
Read(PChar(A)^, LW*SizeOf(LongWord));
finally
Free
end;
begin...end (2005-05-21 08:02:00) [3]var
a: array of Longword;
begin
SetLength(a, 11);
...
// Чтение
FileRead(дескриптор_файла, a[0], Length(a) * SizeOf(a[0]));
...
// Запись
FileWrite(дескриптор_файла, a[0], Length(a) * SizeOf(a[0]));
...
end.