Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.93
-=OK=-
0 / 0 / 0
Регистрация: 19.04.2008
Сообщений: 3
#1

Алгоритм поиска строк в текстовом файле - C++

19.04.2008, 13:25. Просмотров 3367. Ответов 3
Метки нет (Все метки)

Доброго времени суток!
Есть текстовый файл размером ~65 Мб, ~605000 строк. Из этих строк необходимо выделить строки, котрые содержат подстроки "10077" и "Новая запись:" и сохранить их в другой текстовый файл. Написал следующий код:

#include <stdio.h>
#include <string.h>

int main(void)
{
FILE* log_file;
FILE* result_file;
char current_str[1000];

if(!(log_file=fopen("log.txt", "r")))
{
printf("Open log_file failed.\n");
return 0;
}

result_file=fopen("result.txt", "w");

fin: while(!(feof(log_file)))
{
fgets(current_str, 1000, log_file);

if (ferror(log_file))
{
printf("error");
return 0;
}


if (((strstr(current_str,"10077"))!=NULL)&&((strstr(current_str,"Новая запись:"))!=NULL))
{
fputs(current_str, stdout);
fputs(current_str, result_file);
}
else
goto fin;
}

fclose(log_file);
fclose(result_file);

return 0;
}


код работает, но обрабатывает файл не до конца: только 750 строк. В чем ошибка?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2008, 13:25     Алгоритм поиска строк в текстовом файле
Посмотрите здесь:
Программа для поиска соответствие строк, учитывая регистр, в текстовом файле с 10000+ строк C++
Программа поиска и удаления кавычек в текстовом файле C++
Программа поиска местоположения заданного пользователем числа в текстовом файле C++
C++ Центрирование строк в текстовом файле
C++ Подсчитать количество строк в текстовом файле
C++ Поиск определенных строк в текстовом файле
Подсчет строк в гигантском текстовом файле > 4 Гб C++
C++ Найти количество строк в текстовом файле
Удалить в текстовом файле символ распределитель в конце строк C++
C++ Файл: В текстовом файле подсчитать количество непустых строк.
C++ Описать функцию, которая подсчитывает количество пустых строк в текстовом файле
Файлы: в текстовом файле подсчитать количество строк, которые начинаются с буквы C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
бугага
3 / 3 / 1
Регистрация: 08.04.2008
Сообщений: 60
19.04.2008, 13:43     Алгоритм поиска строк в текстовом файле #2
в си не рублю, но вот я понять немогу - зачем нужно "goto fin"? ведь итак есть "while(!(feof(log_file)))"... может из-за этого проблема?
-=OK=-
0 / 0 / 0
Регистрация: 19.04.2008
Сообщений: 3
20.04.2008, 09:18  [ТС]     Алгоритм поиска строк в текстовом файле #3
Цитата Сообщение от бугага Посмотреть сообщение
в си не рублю, но вот я понять немогу - зачем нужно "goto fin"? ведь итак есть "while(!(feof(log_file)))"... может из-за этого проблема?
сорри. конечно, это лишнее. сказывается бейсиковское детство
Но и без goto код также не работает как надо.
-=OK=-
0 / 0 / 0
Регистрация: 19.04.2008
Сообщений: 3
22.04.2008, 08:33  [ТС]     Алгоритм поиска строк в текстовом файле #4
Все! проблема решилась заменой метода доступа с текстового на бинарный
Yandex
Объявления
22.04.2008, 08:33     Алгоритм поиска строк в текстовом файле
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru