Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-46706
Ruslan
2003-05-03 08:05
2003.05.15
Про появление формы


8-46849
maxelrod
2003-02-05 02:30
2003.05.15
паспорт wav-mp3/mp4...


3-46571
Alexis
2003-04-22 18:45
2003.05.15
CachedUpdates, ApplyUpdates & exceptions


1-46720
lelik
2003-05-03 16:07
2003.05.15
about DLL


1-46796
TALLA_
2003-05-02 12:16
2003.05.15
Excel





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский