Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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, так как там сортировка лучше. Я так думаю.



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

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

Наверх




Память: 0.46 MB
Время: 0.004 c
3-32125
harismatik
2002-01-15 13:38
2002.02.11
Поля BLOB в базе INTERBASE


1-32253
XX
2002-01-28 11:24
2002.02.11
Webbrowser - помогите


7-32353
Beginer
2001-10-29 14:37
2002.02.11
Как пользоваться вторым экраном.


3-32168
Yu
2002-01-15 09:30
2002.02.11
Как проверить корректность вводимых данных?


3-32138
dymka
2002-01-15 08:50
2002.02.11
TQuery без TDatabase





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