Главная страница
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.014 c
14-46917
Sha
2003-04-24 09:48
2003.05.15
Минитест на сообразительность


14-46966
Guest566
2003-04-26 14:51
2003.05.15
Как стать масткром Delphi?


7-47026
Doom
2003-03-17 16:18
2003.05.15
Запись с телефонной линии через ЗВУКОВУЮ (!!!!!!!) плату


3-46582
LazorenkoX
2003-04-23 11:01
2003.05.15
CreateDatabase


3-46615
R@nger
2003-04-24 09:36
2003.05.15
DBGrid & Float