![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
Поскажите как можно посчитать количество слов в большом текстовом файле?
просто перебирать посимвольно и искать пробелы не подходит так как занимает очень много времени (при файле 100кб поиск занял 2 минуты) -------------------- Ни цего не понимаю |
|||
|
||||
Matematik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1027 Регистрация: 11.3.2006 Репутация: 17 Всего: 50 |
http://rouse.drkb.ru/ Словарь уникальных слов.
|
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Это если в файле искать, а если его сразу загрузить в память и там искать, то будет быстро. ![]() -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
а TStringList или AnsiString - это разве не память? а если необходимо например искать колличество предложений?? Это сообщение отредактировал(а) Teran - 3.10.2006, 16:46 -------------------- Ни цего не понимаю |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Там про это не было написано... Значит алгоритм поиска по пробелам реализован неоптимально. Должно быть не более 5 секунд Код в студию! -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
ps язык роли не играет Добавлено @ 17:14 можеш показать такой алгоритм?? ![]() Это сообщение отредактировал(а) Teran - 3.10.2006, 17:50 -------------------- Ни цего не понимаю |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 1 Всего: 360 |
Teran, проблема у тебя не в алгоритме, а в чтении из файла. (Я предполагаю). Многие читают с диска посимвольно и удивляются, почему программа тормозит
![]() ПС: Хотя с алгоритмом тоже трабла ![]() Надо чтото типа
PPS: Код не проверял |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Простейший вариант использовать функцию PosEx, из модуля StrUtils. Написана она на ассемблере и позволяет производить поиск начиная с определенной позиции в строке.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 1 Всего: 360 |
ПППС:
Количество предложений это количество точек,воскл/вопр знаков Вместо isalpha(*txt) напиши:
Остальное всё в принципе можно оставить как есть, только названия переменных не будут совпадать, но это уже мелочи. |
|||
|
||||
Alexeis |
|
||||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
К сожалению я не знаком с внутренней реализацией функций на билдере, а потому не могу определить какая из операций является тормозом в этом коде...
StringList - оптимизирован для чтения из файла текста, так что это маловероятно. Добавлено @ 17:31 Еще вариант
![]() -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 1 Всего: 360 |
Кстати, ТСтрингЛист ещё и строки делит сам??? тогда в мусор его.
![]()
PS: А что, считаются только пробелы? А перехосы строк? А ошибки типа "Привет!"-Сказал Вася? Добавлено @ 17:40 Модератор: А что С++ код делает в дельфях? |
|||
|
||||
Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
А если предложение незаконченное (...), либо выражает истинное удивление (???), либо сильно восклицательное (!!!)? В таком случае этот вариант не подходит. -------------------- Ll 2 |
|||
|
||||
Marriage |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 4.5.2004 Где: Таганрог Репутация: нет Всего: 2 |
А что за компутер ??? Если Пень 75 то около того и будет. Скинь свой текст, а то у меня файл 1.06 Мб проверялся около минуты. у меня пень 2.4.
Код не рассчитан на все случаи жизни,считает быстрее чем 100 кб за 2 мин.
Это сообщение отредактировал(а) Marriage - 3.10.2006, 17:59 -------------------- Praemonitus, praemunitus |
|||
|
||||
Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
а чего это программа найдет например первую "." и посчитает предложение+1, - все правильно затем все идущие заним точки (хоть 100) считать не будет sergejzr Тебе выражаю особенную благодарность твой код это все считает за 0.5 - 1 секунду Это сообщение отредактировал(а) Teran - 3.10.2006, 18:07 -------------------- Ни цего не понимаю |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 1 Всего: 360 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |