Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.11;
Скачать: [xml.tar.bz2];




Вниз

Помогите с алгоритмом 


Oleg Fomicheff   (2002-01-18 13:44) [0]

Help!
Задача:
есть дерево (TreeView) и есть набор данных (строки 3 - 4 шт для каждого элемента из дерева). Данные вводятся через edit и memo.
Вопрос: как ЛУЧШЕ и ПРОЩЕ организовать хранение связанной информации, при условии, что дерево это может редактироваться пользователем в ходе программы?
Если можно с примером.
---
Олег.



yaJohn   (2002-01-18 14:10) [1]

Pri sozdanii Node:
Node.Data:=TStringList.Create;
TStringList(Node.Data).Text:=#13#10#13#10;//dlia 2 strok


Pri select Node:
Memo1.Lines.CommaText:=TStringList(Node.Data)[0];
Edit1.Text:=TStringList(Node.Data)[1];


Pri redaktirovanii:
TStringList(Node.Data)[0]:=Memo1.Lines.CommaText;
TStringList(Node.Data)[1]:=Edit1.Text;



yaJohn   (2002-01-18 14:20) [2]

Mda, pri udalenii Node ne zabit"
TStringList(Node.Data).Free



Oleg Fomicheff   (2002-01-18 14:22) [3]

спасибо,
а вот вопрос:
как реорганизовывать этот stringlist при сортировке дерева, если дерево может быть отсортировано и целиком, и его отдельные ветви.
---
олег.



yaJohn   (2002-01-18 14:25) [4]

A ne nado nichego reorganizovivat ;)))
StringList ne odin, a mnogo. Po shtuke na kajdiy uzel dereva. Ssilka na kajdiy StringList hranitsia v Node.Data Kuda Node - tuda i ego StringList s dannimi.



Oleg Fomicheff   (2002-01-18 15:45) [5]

А как же тогда все это множество листов _сохранить_ и _загрузить_?
не хотелось бы иметь толпу файлов, как бы их все в один забить?
через поток?
но я не соображу как их потом сохранять и загружать:(((
А как это повлияет на быстродействие и работоспособность системы в целом, когда в дереве будет 10000 - 15000 элементов?



yaJohn   (2002-01-18 16:11) [6]

>А как же тогда все это множество листов _сохранить_ и _загрузить_?
A eto uje sovsem drugoy vopros.
IMHO optimalniy variant budet sdelat svoe derevo s sohraneniem - vostanovleniem a potom otobrajaat" ego na TTreeView.
>но я не соображу как их потом сохранять и загружать:(((
K sojaleniu eto ne tak prosto. TTreeView prosto ne prednaznachen dlia etogo. SaveToFile k nemu pridelali yavno zria. Stoit zaglianut", v to, chto on sohraniaet....
>А как это повлияет на быстродействие и работоспособность системы в целом, когда в дереве будет 10000 - 15000 элементов?
V opisanom mnoy variante - pochti nikak. TTreeView sojret resursov pobol"she. Pri takom kol-ve itemov ispolzovanie "levih" metodov hranenia dannih - katastrofa. Poetomu "ЛУЧШЕ и ПРОЩЕ" ne viydet. Tolko s ILI. Da i ispolzovat" TTreeView pri takih mashtabah ne rekomenduetsia.



Oleg Fomicheff   (2002-01-18 20:22) [7]

>>А как же тогда все это множество листов _сохранить_ и
>> _загрузить_?
> A eto uje sovsem drugoy vopros.

и где на него найти ответ? :)

>>но я не соображу как их потом сохранять и загружать:(((
>TTreeView prosto ne prednaznachen dlia etogo. SaveToFile k nemu
>pridelali yavno zria.

ну почему, у меня вроде нормально сохраняет/загружает.
Только не могу я придумать, как сохранять множество stringlist"ов в один файл
(сама идея co stringlist"ами мне понравилась и работает на "ура!")



pasha_golub   (2002-01-29 16:43) [8]

Попробуй хранить все в

record
Item1: string[50];
Data1: string[30];
...
datan: string[30];
end;

Если я не ошибаюсь, то Data это указатель. Вот потом берешь и указываешь. А сортировку выполняешь по любому полю записи. Можно даже записи хранить в отдельном TList, так как там сортировка лучше. Я так думаю.




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.11;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.017 c
3-32167           binom                 2002-01-03 15:52  2002.02.11  
SDAC by CoreLab - прямой доступ к MS SQL без БДЕ, АДО и пр.


14-32320          Kirill                2001-12-19 12:26  2002.02.11  
Внимание! Мастера, Администраторы сайта (Модератор тоже)


1-32207           ogu                   2002-01-23 19:41  2002.02.11  
Microsoft Word


3-32179           ray_wagner            2002-01-15 07:58  2002.02.11  
Фокус в DbGrid


4-32371           datch                 2001-12-14 10:06  2002.02.11  
Ярлыки Windows