![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Код:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#12 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Stilet, если не подключён модуль classes (а он, как я понял со слов TC, не подключён) - то использование TStringList невозможно...
p.s. кстати, свойство DelimitedText появилось только в Delphi 6, в моей Delphi5 такого нет ![]() |
![]() |
![]() |
![]() |
#13 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Цитата:
I'm learning to live...
|
||
![]() |
![]() |
![]() |
#14 |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 254
|
![]()
Если используется Delphi 2009/2010, то можно использовать код, приведенный ниже. Он однопроходный и очень быстрый - быстрее любого из уже приведенных на данной ветке (100 кб текста обрабатывается примерно за 40 мсек)
Код:
|
![]() |
![]() |
![]() |
#15 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Ну у меня семерка и потом, мне кажется где-то меня дурят, и скорее всего в районе строки
Код:
Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
|
![]() |
![]() |
![]() |
#16 | ||
Форумчанин
Регистрация: 02.01.2010
Сообщений: 254
|
![]() Цитата:
Цитата:
Здесь замер времени для каждого из приведенных на данной ветке способов (кроме способа от Alex Cones, т.к. в нем нужно было строить массивы слов и их индексов, а мне было лень написать дополнительный код для этого. Но, т.к. там используется Pos по входной строке, то думаю, что его результат будет близок к RemoveDup3): Name| Total time (s) RemoveDup1 0.032927 RemoveDup2 0.038266 RemoveDup3 0.289411 А вот и код для каждой функции: Код:
В коде процедуры RemoveDup1 я допустил ошибку, написав "if ASource[ I ] = ' ' then" вместо "if ASource[ I ] <> ' ' then", что давало неверный результат работы процедуры. Я исправил ошибку и обновил замеры времени. Последний раз редактировалось maxionans; 31.01.2010 в 23:07. |
||
![]() |
![]() |
![]() |
#17 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]() Цитата:
![]()
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
|
![]() |
![]() |
![]() |
#18 | |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 254
|
![]() Цитата:
![]() Код:
Name| Total time (s) RemoveDup1 0.033280 RemoveDup2 0.038365 RemoveDup4 0.281858 RemoveDup3 0.297385 PS. Если вам не нравится моя реализация алгоритма от Alex Cones, то дайте свою и я протестирую её. |
|
![]() |
![]() |
![]() |
#19 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]() Цитата:
![]() Код:
GetItemMas - получение элемента строкового массива Мне так удобней ![]()
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() Последний раз редактировалось Utkin; 01.02.2010 в 07:28. |
|
![]() |
![]() |
![]() |
#20 |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 254
|
![]()
Ну так а что у вас в функциях GetIndexMas и GetItemMas?
UPDATE: Я тут оптимизировал свой вариант реализации алгоритма от Alex Cones (хотя, теперь там от его алгоритма осталось только выделение слов в массив). Вот код: Код:
Name| Total time (s) RemoveDup4 0.012398 RemoveDup1 0.032941 RemoveDup2 0.038286 RemoveDup3 0.292436 А вот тест с другим файлом размером в 2 МБ: Name| Total time (s) RemoveDup4 0.371926 RemoveDup1 0.690033 RemoveDup2 0.946450 RemoveDup3 > минуты, я не дождался её завершения В общем, быстрая получилась функция. Теперь осталось протестировать вашу ![]() Последний раз редактировалось maxionans; 01.02.2010 в 08:17. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Удаление повторяющихся слов C | vivo89 | Помощь студентам | 2 | 24.12.2009 09:18 |
Удаление слов из строки. | grave123 | Общие вопросы C/C++ | 2 | 20.12.2009 15:01 |
Удаление слов из строки С | vivo89 | Помощь студентам | 4 | 13.11.2009 22:13 |
Быстрое удаление содержимого ячеек | gadspider | Microsoft Office Excel | 11 | 18.07.2009 12:08 |
удаление одинаковых слов (С/С++) | jewel | Помощь студентам | 1 | 12.12.2008 15:14 |