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

Вниз

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

 
Smok_er   (2002-05-22 23:53) [0]

фильтрования TStringList на повторяющиеся значения. Т.е. задача следующая - из StringList"a из 100000 строк надо получить меньший по размеру StringList в формате Name=Value, а еще лучше -отдельные 2 StringList"a для Name и Value.
Пробовал метод IndexOf, но он ужасно медленно ищет. Может есть у кого-то более оптимизированный подход?
Большое спасибо!


 
Билл Гейтс   (2002-05-23 00:45) [1]

Делал я такое.
Не знаю, как для 100000 строк, но все же...
Сортируешь свой СтрингЛист методом Сорт.
Создаешь чистый СтрингЛист, бежишь по первому и копируешь во второй только строки, которые отличаются от предыдущей.
Чтоб память экономить - из первого можно сразу удалять.
Туповато, но быстро.


 
lipskiy ©   (2002-05-23 00:46) [2]

Сорри за ник - это я в "Общей" развлкался :)


 
lipskiy ©   (2002-05-23 00:47) [3]

То есть в "Потрепаться".


 
Smok_er   (2002-05-23 00:56) [4]

Ничего страшного :)
Самому частенько развлечься хочется, только вот времени почти никогда нет :(
Можешь привести пример исходного кода? В смысле я понимаю как это сделать, но все же...
И еще один вопрос - в программе удаляю StringList (пробовал и free и destroy), но почему-то в task manager"e это не заметно -"пожираемая" программой память не уменьшается :( Как выйти из этого положения?


 
lipskiy ©   (2002-05-23 01:07) [5]

Исходник есть на работе, сейчас нету.
Но там все просто.
Я даже не совсем верно сказал, вспомнил сейчас - еще проще можно.
Сортируешь свой стринг лист, потом циклом бежишь по нему с хвоста в начало и удаляешь каждую (n-1)-ю строчку, если она равна n-ой. Проверку надо делать с переводом текста в один регистр, например нижний.

Насчет памяти - не подскажу, не спец в этой области.


 
Smok_er   (2002-05-23 01:38) [6]

Спасибо!
Все вроде понятно. Буду пробовать. Завтра если что получится/не получится - напишу о результатах.



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

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

Наверх




Память: 0.48 MB
Время: 0.014 c
1-6956
ymin
2002-05-22 16:45
2002.06.03
Почему по команде form1.print ни один combobox не печатается?


14-7192
UDS
2002-04-23 21:07
2002.06.03
Как сделать форму не квадратной?


3-6903
KVT2002
2002-05-13 09:47
2002.06.03
Отмена изменений в DBGrid, как в Word e


6-7152
Michael_Burahin
2002-03-21 16:55
2002.06.03
Как считать файл (log.txt) со своего сервера (прокси) в прогу


1-7046
phantom2040
2002-05-21 11:04
2002.06.03
Загрузка в Memo текстового файла