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

Вниз

Как лучше организовать список из двух   Найти похожие ветки 

 
StarLit   (2005-02-27 00:39) [0]

string колонок, чтобы потом легко по значению первой получать соответствующее значение второй?
P.S. визуально он не нужен.


 
TButton ©   (2005-02-27 00:41) [1]

...
sl: TStringList;
...
sl:=TStringList.Create;
...
sl.Add("a=1");
sl.Add("b=2");
sl.Add("c=3");
...
label1.Caption:=sl.Values["a"];
...
sl.Free;
...


 
olookin ©   (2005-02-27 00:47) [2]

Ну по любому, тема не оформлена (panov Copyright)


 
StarLit   (2005-02-27 00:49) [3]

большое спасибо.

видимо придется заполнять его так:

...
sl: TStringList;
...
sl:=TStringList.Create;
...
sl.Add("a=1");
sl.Add("b=2");
sl.Add("a1=3");
sl.Add("b2=2");
sl.Add("a3=3");
sl.Add("b3=2");
....

:-(


 
StarLit   (2005-02-27 00:51) [4]

olookin - чего?!


 
DiamondShark ©   (2005-02-27 00:52) [5]

Можно заполнять и так:

sl.Values["a"] := "1";
sl.Values["b"] := "2";
sl.Values["qweqwe"] := "djfbhvdjfvb";


 
StarLit   (2005-02-27 00:55) [6]

учту ;-)


 
StarLit   (2005-02-27 01:01) [7]

слушайте, а поиск как тогда смостерить ?

s1.Find("b1=45",i);

я же как раз хочу и найти что 45 лежит в b1 :-)
или только перебором всего списка и отсекть все до знака = и сравнивать?


 
GuAV ©   (2005-02-27 01:11) [8]

StarLit   (27.02.05 1:01) [7]
слушайте, а поиск как тогда смостерить ?


см ещё раз [1], что подчёркнуто :-)


 
StarLit   (2005-02-27 01:13) [9]

GuAV © - спасибо, что ткнул носом :-), видимо пора спать идти :-)


 
TButton ©   (2005-02-27 01:28) [10]

*немного опоздал (зачитался оффтопом в "Потрепаться")*
а ещё заполнять можно с помощью LoadFromFile


 
GuAV ©   (2005-02-27 01:54) [11]

А про заполнять, так ещё вариант sl.DelimitedText := "a=1, b=2, c=3";


 
jack128 ©   (2005-02-27 02:04) [12]

как два TStringList"а в первом имена, во втором параметры. Первый отсортирован и в его свойстве Objects хранится индекс соответствующего значения во втором листе.

NameStringList.Sorted := True;

Пример:
Доступ
 ValueStr := ValueStringList[Integer(NameStringList.Objects[NameStringList.IndexOf(NameStr)])];
Добавление элемента
 NameStringList.AddObject(NameStr, TObject(ValueStringList.Add(ValueStr)));
Удаление
 Index := NameStringList.IndexOf(NameStr);
 ValueStringList.Delete(Integer(NameStringList.Objects[Index]));
 NameStringList.delete(Index);


А использование Names и Values - это хронический тормоз.


 
StarLit   (2005-02-27 07:52) [13]

ok спасибо Jack128


 
Alex Konshin ©   (2005-02-27 10:25) [14]

jack128 ©   (27.02.05 02:04) [12]
А просто использовать поле Objects религия не позволяет?

Я уж не говорю про очевидную идею по создание записи или объекта и их уже пихать в список.

Еще как вариант могу предложить свои юниты Arrays и AVLtrees, которые очень замечательно подходят для случаев, когда есть какой-то ключ (в данном случае типа String) для быстрого доступа к элементам. Каждый из юнитов хорош по-своему. Кстати, я обновил AVLtrees на сайте, пофиксен один баг.
ссылка на сайт в моей анкете.


 
jack128 ©   (2005-02-27 17:07) [15]

Alex Konshin ©   (27.02.05 10:25) [14]
Я уж не говорю про очевидную идею по создание записи или объекта и их уже пихать в список.

и кодировать быстрый поиск элемента в этом списке самому? Зачем?
Alex Konshin ©   (27.02.05 10:25) [14]
А просто использовать поле Objects религия не позволяет?

Лишний раз возится дин памятью не хотелось..


 
TButton ©   (2005-02-27 19:05) [16]

а вот как хеши в перле реализованы?


 
Alex Konshin ©   (2005-02-28 04:12) [17]

Alex Konshin ©   (27.02.05 10:25) [14]
>А просто использовать поле Objects религия не позволяет?
Лишний раз возится дин памятью не хотелось..

А и не нужно. В случае строк нужно просто использовать PString (только не забывать о корректном удалении). В случае чисел (как в этом конкретном случае) так вообще просто хранить их в Objects.

TButton ©   (27.02.05 19:05) [16]
а вот как хеши в перле реализованы?

Думаю, что также, как HashMap и Hashtable в Java. Можно тоже самое сделать с помощью моих юнитов, упомянутых выше. Высокую скорость работы гарантирую - там применяются алгориты сбалансированных бинарных деревьев поиска (AVL-деревья).



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

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

Наверх




Память: 0.5 MB
Время: 0.032 c
14-1109069405
syte_ser78
2005-02-22 13:50
2005.03.13
Сообщение Word - Файл используется другим пользователем.


3-1108306149
UVV
2005-02-13 17:49
2005.03.13
Почему не работает запрос в Oracle?


4-1107179861
TAHAT
2005-01-31 16:57
2005.03.13
Как приостановить выполнение функции, вызванной из DLL


1-1109230829
3APA3A
2005-02-24 10:40
2005.03.13
Combobox


14-1108996975
infom
2005-02-21 17:42
2005.03.13
Юношеский максимализм.....