Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Alexander Andrusenko                 2:5020/400     23 Oct 2002  15:44:47
 To : All
 Subject : Поиск строки по всем файлам диска.
 -------------------------------------------------------------------------------- 
 
 
 Привет всем.
 
 Да, я знаю, что большинство файловых менеджеров это позволяют, но хочу
 написать для себя программу с расширенными возможностями поиска. При
 написании столкнулся с проблемой, которая до этого казалась мне элементарной
 вещью.
 
 Как реализовать поиск строки в файле? Знаю несколько способов, но ни один из
 них мне не нравится.
 
 1. Переписать функцию strstr, сделав вместо обращений к памяти обращения к
 файлу. Это даже способом называть стыдно - никакой буферизации, частое
 обращение к диску, очень медленная работа...
 
 2. Прочитать весь файл в буфер, и уже потом выполнять поиск. Это намного
 лучше, но совершенно неприменимо для больших файлов.
 
 3. Читать в буфер в цикле. Вроде бы то, что нужно, но... здесь вдруг вылазит
 целая куча мелочей, в которых можно запутаться. Для наглядности примера
 возьму строку, состояющую из n одинаковых символов, и буфер размером N>n.
 При очередном чтении из файла выясняется, что содержимое буфера
 заканчивается m теми же одинаковыми символами (m<n). И что делать дальше?
 
 Лучшее, что я смог придумать в таком случае - это повторное чтение в буфер,
 начиная с первого совпавшего символа. Вот только не уверен, что этот
 способ - оптимальный. Кроме того, при такой реализации получается
 ограничение на максимальный размер строки. И, кстати, каким в таком случае
 будет оптимальное соотношение размеров буфера и строки?
 
 Кто знает (или может предложить) лучший способ? Желательно, чтоб без
 ограничения на размер строки (которая тоже будет читаться из файла).
 --- ifmail v.2.15dev5
  * Origin: Volia ISP (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Поиск строки по всем файлам диска.   Alexander Andrusenko   23 Oct 2002 15:44:47 
 Re: Поиск строки по всем файлам диска.   Valentin Davydov   28 Oct 2002 08:43:43 
 Re: а если так (применительно к HDD)?   Pavel Berezin   01 Nov 2002 11:20:26 
Архивное /ru.algorithms/11847bb8f4f8c.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional