Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.034 c
4-1107195222
Ландграф Павел
2005-01-31 21:13
2005.03.13
Ввести в поле чужой программы свой текст


1-1109669096
XP
2005-03-01 12:24
2005.03.13
Operator not applicable to this operand type


1-1109262876
AlexanderVas
2005-02-24 19:34
2005.03.13
Можно ли поменять тип записи во время исполнения программы


6-1105369923
Константинов
2005-01-10 18:12
2005.03.13
Имитация локальной сети на одном ПК


1-1108454202
BPK
2005-02-15 10:56
2005.03.13
Пошаговая отладка: как не входить в системные unit ы?





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