Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> C++ проверить наличие строки в файле 
:(
    Опции темы
fire64
Дата 18.12.2008, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 18.7.2007

Репутация: нет
Всего: нет



как проверить наличие строки в файле ?

есть файл состоящий из нескольких строк состоящих из нескольких слов

мне нужно проверить есть ли в файле определенная строка

я хотел загрузить файл в буфер с помощью fgets, но fgets загружает только одну строку, а мне нужно весь файл



Это сообщение отредактировал(а) fire64 - 18.12.2008, 12:39
PM MAIL   Вверх
andrew_121
Дата 18.12.2008, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Используй fgets и проверяй на условие конца файла.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
fire64
Дата 18.12.2008, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 18.7.2007

Репутация: нет
Всего: нет



ок с загрузкой файла в буфер разобрался

теперь другая проблема

stricmp сравнивает только одинаковые слова
мне же надо проверить входит ли первое слово в состав второго

что то типа

stricmp( "abc",    "ktpabcntdrf" )
PM MAIL   Вверх
mrbrooks
Дата 18.12.2008, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 19
Всего: 306



fire64, предлагаю заюзать файловый ввод/вывод с помощью потоков в стиле С++. Посмотри в центре помощи - там была недавно тема - которая поможет тебе.
PM MAIL   Вверх
GoldFinch
Дата 18.12.2008, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



отобрази файл в память через file mapping и ищи строку как в обычной памяти
PM MAIL ICQ   Вверх
Romikgy
Дата 18.12.2008, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 1
Всего: 146





--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
fire64
Дата 18.12.2008, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 18.7.2007

Репутация: нет
Всего: нет



Romikgy, substr мне не подходит, мне нужно выяснить если такая же строка в файле и если нет, то записать

я сейчас работаю над прогой на С
так что string::find мне тоже не подходит

Это сообщение отредактировал(а) fire64 - 18.12.2008, 16:05
PM MAIL   Вверх
Romikgy
Дата 18.12.2008, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 1
Всего: 146



fgets , перебрать файл построчно , 
и реализовать ф-цию substr самому в коде это не так уж и сложно


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
mrbrooks
Дата 18.12.2008, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 19
Всего: 306



по сабжу:
Код

    typedef std::list<std::string>L;
    L list;
    std::string str;
    std::ifstream ifile("file.txt");
    std::cin >> str; 
    std::copy(std::istream_iterator<L::value_type>(ifile),
        std::istream_iterator<L::value_type>(),
        std::inserter(list,list.begin()));
    L::const_iterator it = list.begin();
    while (it != list.end())
    {
        if (str == *it) 
        {
            std::cout <<"yes!"<< std::endl;
            break;
        }
        else it++;
    }
    ifile.close();

PM MAIL   Вверх
Romikgy
Дата 18.12.2008, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 1
Всего: 146



Цитата(mrbrooks @  18.12.2008,  15:33 Найти цитируемый пост)
по сабжу:


Цитата(fire64 @  18.12.2008,  15:00 Найти цитируемый пост)
я сейчас работаю над прогой на С

 smile 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
mrbrooks
Дата 18.12.2008, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 19
Всего: 306



Romikgy, 
Цитата(mrbrooks @  18.12.2008,  16:33 Найти цитируемый пост)
по сабжу:

Цитата

   C++ проверить наличие строки в файле


 smile 
PM MAIL   Вверх
Dov
Дата 18.12.2008, 17:36 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 11
Всего: 88



Цитата(fire64 @  18.12.2008,  12:33 Найти цитируемый пост)
мне же надо проверить входит ли первое слово в состав второго
 
Для этих целей нужно юзать ф-цию strstr(), которая именно этим и занимается. 



--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
Dmi3ev
Дата 18.12.2008, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



Цитата

fgets , перебрать файл построчно , 
и реализовать ф-цию substr самому в коде это не так уж и сложно 

полностью согласен, зачем загружать в буфер, еще чего-то, просто бери из файла строку и смотри совпадает она или нет с той, что у тебя задана в программе...


--------------------

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0561 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.