Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
1-1139902820
NeyroSpace
2006-02-14 10:40
2006.03.19
Обработка ошибок при инициализации приложения


2-1141574369
Ventures
2006-03-05 18:59
2006.03.19
Как открыть файл.


9-1126538054
WonderfulDay
2005-09-12 19:14
2006.03.19
запаковать растры


2-1141032793
dem_1112
2006-02-27 12:33
2006.03.19
dbchart очень срочно нужен ответ


2-1141214718
Alex_C
2006-03-01 15:05
2006.03.19
Клик мыши на StatusBarе





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский