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

Вниз

Помогите с алгоритмом   Найти похожие ветки 

 
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, так как там сортировка лучше. Я так думаю.



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

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

Наверх




Память: 0.48 MB
Время: 0.01 c
3-32113
Shulzs
2002-01-12 22:18
2002.02.11
Как сделать отчет в Word в виде таблицы?


3-32170
Hawk2
2002-01-16 18:28
2002.02.11
Снова о кодировке.


4-32381
_SnAke_
2001-12-08 16:00
2002.02.11
SystemTray


3-32130
Belov
2002-01-15 11:18
2002.02.11
Вопрос по связке DLL - БД


14-32344
Sheva
2001-12-20 15:30
2002.02.11
Подскажите, пожалуйста.