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

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

Запись/чтение динамического массива в/из файла - как?


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.


Наверх

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