Форум: "Основная";
Текущий архив: 2003.05.15;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c