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

Вниз

TList   Найти похожие ветки 

 
Novichok1   (2003-04-30 13:50) [0]

Привет, мастера.
Скажите, плиз, как сохранить все содержимое TList в файл.

Такого метода как SaveToFile я не нашел.

Я знаю что TList содержит ссылки на обьекты.
Я хочу сохранить эти обьекты в файле.
Что бы в следующий раз открыть этот файл и содержимое опять запихнуть в TList.


 
DREMcas_x   (2003-04-30 13:56) [1]

listbox1.Items.SaveToFile("c:\111.txt");


 
Digitman ©   (2003-04-30 14:01) [2]


> Я хочу сохранить эти обьекты в файле.


Каждый объект нужно сохранять индивидуально


 
jel ©   (2003-04-30 14:04) [3]

tList хранит массив указателей. Сохранять и загружать его бессмысленно, но никто не мешает написать пару методов которые будут сохранять в файл то, на что указывают указатели (во завернул-то :) и загружать эти объекты из файла.


 
DREMcas_x   (2003-04-30 14:06) [4]

> jel

можно конечно ! но как ?


 
DREMcas_x   (2003-04-30 14:11) [5]

я сделал так :

try
if listbox2.Items.Text = "" then begin
filecopy_2.Enabled:=false;
end
else begin
listbox2.ItemIndex:=0;
WindowsCopyFile(listbox2.Items.Strings[listbox2.itemindex-1], path_f);
listbox2.DeleteSelected;
end;

if listbox2.Items.Text <> "" then // чтобы перепрыгивал на начало процедуры и копировал заново пока есть записи в listbox


только не знаю как сделать чтобы по окончании копирования одного файла был прыхок на начало процедуры :(


 
Novichok1   (2003-04-30 15:15) [6]

>Digitman ©

>> Я хочу сохранить эти обьекты в файле.

>Каждый объект нужно сохранять индивидуально

Неужели нет елегантного решения?
Давайте упростим задачу.
Пусть обьекты будут одного типа.
Как в этом случае сохранить их в файл?

type
MyObject = class
...
end;

var
lst: TList;
mobj: MyObject;

begin
lst:=TList.Create;

//наполняем mobj
...

lst.Add(mobj);

//наполняем следующий mobj
...

lst.Add(mobj);
lst.SaveToFile("a.a");
lst.Free;
end.


 
Smithson ©   (2003-04-30 15:34) [7]

Тогда в объект введи умение сохранять себя на диск (процедуру SaveToFile) и в цикле делай так: TMyClass(lst[i]).SaveToFile


 
Digitman ©   (2003-04-30 15:46) [8]


> Неужели нет елегантного решения?


Как раз оно и есть - "элегантное" !

Читай <Smithson>

Научи объект сохранять самого себя в файл, если он этого не умеет !
Например, все наследники TPersistent "умеют" автоматически сохранять свои published-св-ва в поток. Не так уж сложно и "научить" объект-наследник TPersistent сохранять любые свои поля/свойства в полток, вместе с автоматически сохраняемыми



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

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

Наверх




Память: 0.48 MB
Время: 0.012 c
6-46883
shane54
2003-03-19 17:12
2003.05.15
Больше одного письма через SMTP


14-46978
kost
2003-04-27 17:50
2003.05.15
C++


9-46554
Denton
2002-12-04 00:12
2003.05.15
Помогите с физикой


1-46714
чютатель
2003-05-04 16:28
2003.05.15
Как прочитать константу из dll ?


4-47055
cult
2003-03-13 17:56
2003.05.15
FONT и LOGFONT