Главная страница
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.011 c
1-32251
Jony
2002-01-28 10:54
2002.02.11
EhLib


1-32182
BorisM
2002-01-23 07:24
2002.02.11
Прокрутка при DragDrop


4-32382
DenKop
2001-11-27 22:36
2002.02.11
Вывод текста


3-32177
jenbond
2002-01-17 11:08
2002.02.11
Sql and TEdit


6-32300
Sectoid
2001-11-21 13:15
2002.02.11
У меня есть исходный код HTML ки. Как мне его глянуть в нормальном виде (как страничку, а не как код)???