![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| regen |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 5.7.2006 Репутация: нет Всего: нет |
Добрый день
Суть вопроса такова.. Как средствами Java можно усуществить поиск подстроки в файле? В msdos есть команда find. Она именно его и производит. Можно ли из java вызвать эту команду или как осуществить быстрой поиск в файле? Метод считать файл в буффер а потом искать в буффере - не пройдёт.. Файлов очень много в каталоге, и мне необходимо найти файлы в которых есть указанная подстрока... Заранее спасибо за ответ. |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Без программного чтения реализовать поиск в файле можно только командой оси, как ты и сам сказал. Для запуска команды пользуйся
, а потом анализируй в программе вывод команды. Разумеется, следует еще не забыть о проблеме кросплатформенности, если она нужна. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| regen |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 5.7.2006 Репутация: нет Всего: нет |
Только что попробовал.. Команда find не может найти русскоязычной подстроки.. Т.е. подстрку "Olga" найти может, а подстроку "Ольга" - нет.. Какие тогда идеи насчёт быстрого поиска?
|
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
Там всё дело в кодировке. Поиграй с ней.
Добавлено @ 12:33 На крайний случай - пиши сам. Ищи с Stream'e. Вот тебе алгоритмов сумка http://www-igm.univ-mlv.fr/~lecroq/string/index.html |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Первое, что приходит на ум при решении задачи быстрого поиска - это предварительная индексация. Разумеется, это будет затратной операцией с точки зрения добавления/удаления/изменения индексируемых файлов.
Это сообщение отредактировал(а) Lamer George - 24.7.2006, 12:46 -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 31 Всего: 132 |
Если нужен поиск по текстовым файлам, может быть пойдет такой метод:
|
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
Я бы посмотрел в сторону lucene. Кстати для линуха (ну и винды тоже) ещё есть beagle- лучшая альтернатива гугльскому "Desktop search". (Моя девушка как раз сейчас разрабатывает возможность поиска и на удалённых раб.столах |
|||
|
||||
| regen |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 5.7.2006 Репутация: нет Всего: нет |
Да.. Поиск в текстовых файлах....Открытие всех файлов в каталоге и просмотр их... Это понятно... Другими способов нету? Алгоритмы быстрого поиска я знаю... Вот только это опять же "изобретать велосипед" на мой взгляд...
|
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Ну это все-таки с чтением при каждом поиске... Надо решить, что критичнее - время манипуляции с файлами, или время поиска в них. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 31 Всего: 132 |
||||
|
||||
| regen |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 5.7.2006 Репутация: нет Всего: нет |
Вообщем описываю всю предисторию:
в каталоге около 500 файлов размером в среднем по 3 метра текстовики... есть форма поиска... пользователь вводит туда какую-то строку.. дальше происходит сам поиск насчёт кроссплатформенности... конечные пользователи представители женского пола которым давно за 30... отсюда следует - только виндоус насчёт что критичнее.. золотая середина между быстротой поиска (чтобы пользователь не ждал по полминуты перед экраном) и объёмом потребляемой памяти при этом |
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 31 Всего: 132 |
Ну тогда действительно смотри в сторону Lucene. Придется периодически индексировать файлы, зато поиск очень быстрый.
|
|||
|
||||
| regen |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 5.7.2006 Репутация: нет Всего: нет |
Lucene так Lucene.... Хорошо... Разберусь...
Открыв ссылку увидел что это что-то из семейства апача... Ни о каком веб-сервере речи не может быть... Если что-то не понял - то извиняйте. И ещё... Lucene индексирует сам файл? Или строки в файлах? И это делается на чьей стороне? (файлы в котором осуществляться поиск будет со временем будут обновляться (закачка с сервера)... пройдёт ли Lucene с этим?) |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
Беагле кстати сам индексирует по мере добавления. Там 2 версии CSharp и ява. идентичные до этого момента. Т.е индексацию по добавлению может только Шарп (связано с нативными вызовами)
|
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 31 Всего: 132 |
Apache - это организация, при чем веб-вервер? Номера строк в документах не хранит. Если нужны строки, придется искать что-то другое. Это сообщение отредактировал(а) tux - 24.7.2006, 13:57 |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |