Форум: "Начинающим";
Текущий архив: 2006.03.19;
Скачать: [xml.tar.bz2];
Внизсохранение данных Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.011 c