Страница: 1 |
Страница: 1 |
Вопрос: Поиск текста в файлах
Добавлено: 20.03.09 12:28
Автор вопроса: Sergey
Народ, подскажите.
Как реализовать поиск слова в нескольких текстовых файлах, причем их более 1000, и вывести имя файла, в котором найдено совпадение.
Ответы
Всего ответов: 12
Номер ответа: 1
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #1
Добавлено: 20.03.09 13:01
В общем случае так:
1. Сделать перебор файлов. Если они в подкаталогах, то перебор рекурсией.
2. Сделать открытие файла - поиск информации - закрытие файла.
3. Соединить (1) и (2) и дополнить выводом результатов.
Но так как ты не указал язык, платформу и что искать (строку, по regexp, сигнатуру, другое..), то и указания по решению общие.
Номер ответа: 2
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #2
Добавлено: 20.03.09 13:28
P.S. Пардон, в заголовке написано, что "Поиск текста в файлах".
Номер ответа: 3
Автор ответа:
Imperial Kashak
ICQ: 479713821
Вопросов: 10
Ответов: 57
Профиль | | #3
Добавлено: 20.03.09 13:51
Предлагаю, как и в первом ответе п.2, но имена файлов набить в массив дабы не потеряться потом, и при совпадении из массива (или даже из простого List) и вывести имя файла.
А вот поиск текста - открыть для считывания, считать файлик целиком (а не по символам или строкам, если большой окажется), а оттуда уже выискать стандартной функцией.
Номер ответа: 4
Автор ответа:
Sergey
Вопросов: 39
Ответов: 87
Профиль | | #4
Добавлено: 20.03.09 14:06
Поиск слова в текстовом файле. Visual Basic 6. WinXP sp3.
Номер ответа: 5
Автор ответа:
fAndOrIn
Вопросов: 5
Ответов: 344
Профиль | | #5
Добавлено: 20.03.09 14:24
Результат - строку типа
"---------- D:\TMP\1.TXT: 1
---------- D:\TMP\2.TXT: 1
---------- D:\TMP\3.TXT: 1
"
думаю, сможешь подогнать под свои требования.
Номер ответа: 6
Автор ответа:
Sergey
Вопросов: 39
Ответов: 87
Профиль | | #6
Добавлено: 20.03.09 15:18
А если без командной строки? Русский текст таким образом не найдешь...
Номер ответа: 7
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #7
Добавлено: 20.03.09 20:14
1000 текстовых файлов?
И какой их суммарный объем?
Номер ответа: 8
Автор ответа:
Sergey
Вопросов: 39
Ответов: 87
Профиль | | #8
Добавлено: 23.03.09 09:29
Суммарный размер файлов более 100 Мб
Номер ответа: 9
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #9
Добавлено: 23.03.09 14:41
Значит в среднем размер одного файла порядка 100 КБ. Не вижу необходимости заморачиваться с потоковым поиском, проще считывать содержимое файла в строку, затем через InStr искать вхождения.
Номер ответа: 10
Автор ответа:
Sergey
Вопросов: 39
Ответов: 87
Профиль | | #10
Добавлено: 23.03.09 15:06
К примеру есть файлы 1.txt и 2.txt в директории C:\1\
Нужно найти слово Find.
Номер ответа: 11
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #11
Добавлено: 23.03.09 16:00
Да даже если и 500кб.
Согласен с Брандом, последовательный перебор файлов, загрузка содержимого в строку и поиск вхождения даст приемлемые результаты.
Номер ответа: 12
Автор ответа:
Sergey
Вопросов: 39
Ответов: 87
Профиль | | #12
Добавлено: 23.03.09 16:05
Подскажите, как это сделать...