![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Slammer |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 29.3.2006 Репутация: 1 Всего: 1 |
Добрый вечер!
Задание: Написать программу, которая работает таким способом - Пользователь вводит текст (строка до 40 символов. может состоять из несколько слов), который мы ищем в уже существуешем фаиле. Если ведёный текст совподает с тем что имеется в фаиле, тогда выводим его в другой фаил, указав номер строки, где он был найден. Обробатывать сущесвуюший фаил можно только по симболам и в текстовом режиме. Мне +- идея понятна как необходимо делать, но проблема в самой реализации, учитывая то, что знания почти нулевые в программном деле. Пожалуйста на мануал не отсылать, очень сложно в нём разобратся без помоши. Часть кода, которую я пытался написать сам, с уймой ошибок :( Спасибо за помощь! В приложении просто глупый пример существуешего фаила.
Это сообщение отредактировал(а) Slammer - 9.3.2009, 00:36 Присоединённый файл ( Кол-во скачиваний: 6 ) ![]() |
|||
|
||||
Avaj |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 14.7.2008 Где: Владивосток. Репутация: 1 Всего: 3 |
Ну кое-как потестил - вроде нормально всё:
Юзал MinGW / G++. |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
вот мой вариант.
Это сообщение отредактировал(а) zim22 - 9.3.2009, 15:12 |
|||
|
||||
Avaj |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 14.7.2008 Где: Владивосток. Репутация: 1 Всего: 3 |
zim22, И действительно - получилось короче.
![]() Но если получше потестить, то... например если входной файл такой:
а искать в нём :
![]() |
||||
|
|||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
Avaj, спасибо за тестирование
![]() я забыл обнулить cnt, после того как, вхождение подстроки найдено. надо так:
|
|||
|
||||
Slammer |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 29.3.2006 Репутация: 1 Всего: 1 |
Спасибо за быстрые ответы и помощь!
|
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 5 Всего: 59 |
+1 Добавлено через 13 минут и 1 секунду Slammer, То-ли я что-то не то нажал, то-ли сафари глючит (а он действительно иногда глючит). В общем я вам поставил + за помощь вам же, хотя адресовывал его zim22. Может и я не туда жамкнул. Так что извините. |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
|
|||
|
||||
Slammer |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 29.3.2006 Репутация: 1 Всего: 1 |
Всем опять добрый вечер. Оказывается, не правильно понял условия задачи.
Выводить надо было все те строчки + номер строки, где был найден вводимый поисковой текст. К примеру, из фаила txt_file.txt надо выводить 2, 3, 5, 6, 7 строки, если ищем 'to'; txt_file.txt _______________________ That's bad news for the content industries, which have fired off letter after menacing letter to the site, only to see their threats posted on The Pirate Bay, together a with mocking replies. Viborg said that no one has successfully indicted The Pirate Bay or sued its operators in Swedish courts. Attorneys for DreamWorks and Warner Bros., two companies among those that have issued take-down demands to the site, did not return calls for comment. _______________________ Помогите найти ошибку в моих карякулях:
Спасибо! |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
||||
|
||||
Slammer |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 29.3.2006 Репутация: 1 Всего: 1 |
Сравнение необходимо посимвольно делать..
Тем самым, в начале цикла - просто все символы по очерёдности вкладываем в динамический массив. Параллельно проверяем нету ли там искаемой строки. Когда переходим к следуюшей строки - проверяем печатать ли текущею строку или нет. Удаляем массив. Повтор цикла.. В коде совершил ошибку, но не пойму где. ![]() |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
Slammer, если мы ищем слово "ews". без буквы n в начале.
прога должна найти что-нибудь? |
|||
|
||||
Dmi3ev |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
думаю, что да вот два поиска: Кнута-Морриса-Пратта (быстрый) и простой (медленный)
-------------------- |
||||
|
|||||
Slammer |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 29.3.2006 Репутация: 1 Всего: 1 |
да. эмм. теперь думаю над теми двумя алгоритмами. |
|||
|
||||
Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
взял первый алгоритм, для примера:
выходной файл имеет вид (номер строки, номер позиции первого символа текста (кот. мы искали), сама строка): I want find all strings with this text: text Line: 1 First position of text: 4 String: My text Line: 2 First position of text: 14 String: lalalalalaal text Line: 3 First position of text: 1 String: text Line: 6 First position of text: 1 String: text Line: 8 First position of text: 1 String: text Line: 11 First position of text: 24 String: dsfadsfadsfasdfasdfasdftext -------------------- |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |