Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Весло
0 / 0 / 0
Регистрация: 20.04.2011
Сообщений: 12
1

Поиск текста в файле

18.05.2011, 03:12. Просмотров 1005. Ответов 9
Метки нет (Все метки)

Требуется написать программу, которая находит в директории файлы с определенным текстом(точнее словом), набранным в другом файле, при этом найденные файлы (в которых имеется найденное слово) необходимо скопировать в подкаталог.

я - новичек, стыдно опозорится, но насколько поняла в начале нужно использовать ф-цию scandir из библиотеки stdio.h, и получив массив из файлов папки использовать цикл и для каждого элемента массива(файла) нужно открыть его командой fopen, а дальше использовать команду strstr и искать содержимое поочередно в файлах, и if true (совпадение - находит слово) - то команда fcopy.
но не имею понятия как это реализовать(( что не пробовала, везде ошибки выбивает.помогите пожалуйста, подойдет код как для Visual C++ 6 так и для Builder 6.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2011, 03:12
Ответы с готовыми решениями:

Поиск текста в файле
Добрый день. задача: находить в текстовом файле введенный с клавиатуры текст и...

Поиск и замена текста в файле
Добрый день. Хочу попробовать написать программу, которая будет выполнять поиск...

Поиск текста в файле и копирование его в другой
Здравствуйте. Может кто нибудь подсказать как это сделать? Нужно найти в...

Поиск текста в файле между двумя данными словами
Привет всем. Подскажитье, как можно найти текст (неизвезный) между двух...

Как в среде VISUAL C++ 2008 осуществлять поиск текста в файле WORD ?
Здравствуйте ! Подскажите, пожалуйста, как в среде VISUAL C++ 2008...

9
Kastaneda
Jesus loves me
Эксперт С++
4940 / 3016 / 346
Регистрация: 12.12.2009
Сообщений: 7,612
Записей в блоге: 2
Завершенные тесты: 1
18.05.2011, 06:10 2
scandir из библиотеки stdio.h
Это в Unix/Linux.
0
Весло
0 / 0 / 0
Регистрация: 20.04.2011
Сообщений: 12
18.05.2011, 15:17  [ТС] 3
как же тогда быть, если я запускаю в винде в вижуал С++ или билдере 6?
0
igorrr37
1867 / 1483 / 751
Регистрация: 21.12.2010
Сообщений: 2,473
Записей в блоге: 11
18.05.2011, 18:22 4
можно через winapi сделать, или через boost::filesystem

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<iostream>
#include<string>
#include<boost/filesystem/operations.hpp>
#include<iterator>
#include<fstream>
using namespace boost::filesystem;
 
int main(){
    path p="c:\\myFolder\\", p1="c:\\myFolder1\\"; //где искать и куда копировать
    if(!exists(p)||!exists(p1)){std::cerr<<"Folder not found"; return -1;}
    directory_iterator it(p), endIt;
    std::string sFind="data"; // слово
    for(; it!=endIt; ++it){
        if(!is_directory(*it)){
            std::fstream fs(it->string().c_str());
            if(!fs){std::cerr<<"Error\n"; return -2;}
            std::string s((std::istreambuf_iterator<char>(fs)), std::istreambuf_iterator<char>());
            fs.close();
            if(s.find(sFind)!=std::string::npos){
                copy_file(*it, p1/it->leaf());
                std::cout<<*it<<"\n";
            }
        }
    }
    return 0;
}
1
Весло
0 / 0 / 0
Регистрация: 20.04.2011
Сообщений: 12
18.05.2011, 20:14  [ТС] 5
Спасибо Вам большое! а в чем Вы компилировали?
0
igorrr37
1867 / 1483 / 751
Регистрация: 21.12.2010
Сообщений: 2,473
Записей в блоге: 11
18.05.2011, 20:41 6
IDE может быть любая(например Code::blocks) плюс должна быть установлена библиотека Boost
1
Весло
0 / 0 / 0
Регистрация: 20.04.2011
Сообщений: 12
18.05.2011, 21:59  [ТС] 7
я прошу прощения, но вопрос: скачала ваш IDE и Boost, ноне знаю как установить эту библиотеку, чтобы компилировало...(
0
igorrr37
1867 / 1483 / 751
Регистрация: 21.12.2010
Сообщений: 2,473
Записей в блоге: 11
18.05.2011, 22:54 8
насчёт сборки смотрите статьи в интернете
1
Весло
0 / 0 / 0
Регистрация: 20.04.2011
Сообщений: 12
19.05.2011, 00:40  [ТС] 9
ребята, а кто знает как через WinApi реализовать?
0
Весло
0 / 0 / 0
Регистрация: 20.04.2011
Сообщений: 12
20.05.2011, 19:23  [ТС] 10
а реально ли написать код без использования boost'a или WinApi. Если кто знает, помогите пожалуйста кодом. Преподаватель потребовал код без использования этих библиотек(
0
20.05.2011, 19:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2011, 19:23

Поиск в текстовом файле слова и вывод блока текста, в котором оно встретилось
Здравствуйте! Подскажите пожалуйста как будет выглядеть код мне нужно...

Поиск в текстовом файле всех слов, заданных в другом текстом файле
Вообщем такое задание: Поиск в текстовом файле всех слов, заданных в другом...

Реализовать поиск заданного файла в древе каталогов и поиск указанной информации в этом файле
Имеется много папок в каждой папке есть файл proc.txt, как можно по всем этим...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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