Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 1133
Благодарности: 581

Профиль | Отправить PM | Цитировать


Цитата DaRiYs:
нужно подсчитать сколько раз встречается заданная строка в какомто файле. Файл нельзя весь грузить в память а только частями или побайтно считывать »
Честно сказать C# не знаю, но на Делфи, я бы сделал таким образом:
Пример
Код: Выделить весь код
function SearchSubString(const FileName, SearchString: string): Integer;
var
  txt: TextFile;
  s: string;
  count: Integer;
begin
  count:= 0;
  try
    AssignFile(txt, FileName);
    Reset(txt);
    while not Eof(txt) do
      begin
        Readln(txt, s);
        while Pos(SearchString, s) > 0 do
          begin
            Delete(s, 1, Pos(SearchString, s) + Length(SearchString));
            Inc(count);
          end;
      end;
    Result:= count;
  finally
    CloseFile(txt);
  end;
end;

// Пример использования: SearchSubString('C:\Test.txt', 'Hallo world!!!');
// В результате, фукция вернёт количество Hallo world!!! в файле C:\Test.txt

Функция работает очень быстро, надеюсь, что-то похожее можно и на C#.

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:24, 15-03-2010 | #3