Главная страница
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.044 c
15-1140564071
Bogdan1024
2006-02-22 02:21
2006.03.19
Пощитать сумму.


3-1138095220
dtm
2006-01-24 12:33
2006.03.19
Кодировка поля таблицы типа "text" - can not transliterate


2-1141133176
sanich
2006-02-28 16:26
2006.03.19
Поставить курсор в таблице на определенное поле


15-1140476564
Германн
2006-02-21 02:02
2006.03.19
Потрепаться vs Прочее


15-1140954049
постигаю
2006-02-26 14:40
2006.03.19
меняющаяся ячейка