Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.19;
Скачать: CL | DM;

Вниз

сохранение данных   Найти похожие ветки 

 
pound ©   (2006-03-01 11:56) [0]

Есть проблема с сохранением данных в дисковом файле.
Создаю динамический массив из элементов DecSim
type
 DecSim = record  //Один элемент
   n: Integer;
   g,b: Byte;
   x,y,r: Double;
 end;
Проблема в том, что я не могу сохранять в файле элементы различной длины,
приходится накладывать ограничение на массив, предположим
MyDecSim = array [0..30] of DecSim; // Элемент, который надо сохранить в файле.
Подскажите, как обойти эту проблему.
Заранее благодарен. Андрей.


 
Сергей М. ©   (2006-03-01 12:03) [1]

Решение в псевдокоде :

var MyDecSim: TMyDecSim;
var ArrLen : Integer;

..
сохранение дин.массива в файл

ArrLen := Length(MyDecSim);
Файл.Записать(ArrLen);
for i := 0 to ArrLen-1 do
 Файл.Записать(MyDecSim[i]);

востановление дин.массива из файла

ArrLen := Файл.Прочитать();
SetLength(MyDecSim, ArrLen);
for i := 0 to ArrLen-1 do
 MyDecSim[i] := Файл.Прочитать();

Идея, надеюсь, будет понятна.


 
Dmitrij_K   (2006-03-01 12:09) [2]

Чтото типа такого

procedure Write;
var l,j : Integer;
begin
 l := Length(<Динамический массив>);
 TFileStream.Write(l,SizeOf(l));
 l := SizeOf(DecSim);
 for j:=Low(<Дин Массив>) to High(<Дин Массив>) do
   TFileStream.Write(<Дин Массив>[j],l);
end;
procedure Read;
var l,j : Integer;
begin
 TFileStream.Read(l,SizeOf(l));
 SetLength(<Дин Массив>,l);
 l := SizeOf(DecSim);
 for j:=Low(<Дин Массив>) to High(<Дин Массив>) do
   TFileStream.Read(<Дин Массив>[j],l);
end;



Страницы: 1 вся ветка

Текущий архив: 2006.03.19;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.029 c
15-1140520497
devprom
2006-02-21 14:14
2006.03.19
Система управления процессом разработки


4-1135644089
Arazel
2005-12-27 03:41
2006.03.19
Чтение секторов из под Win9x КАК?


2-1141626207
dera
2006-03-06 09:23
2006.03.19
К;ак динамически добавить пункты меню в PopupMenu?


15-1140514853
Увы..
2006-02-21 12:40
2006.03.19
загрузочный диск


15-1140435263
Pazitron_Brain
2006-02-20 14:34
2006.03.19
Как узнать ресурс картриджа?