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

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

22.06.2014, 23:35. Просмотров 1128. Ответов 5
Метки нет (Все метки)


написал код, вопрос ищет, но вариант выдает неправильный.( выдает самый последний вариант ответа из текста).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i,j;
for(i=0; i<=Memo1->Lines->Count; i++)
{
if(Memo1->Lines->Strings[i].Pos(Edit1->Text))
{
Label1->Caption=Memo1->Lines->Strings[i];
j=i;
}
}
for(j=i; j<=Memo1->Lines->Count; j++)
{
String x="+";
if(Memo1->Lines->Strings[j].Pos(x))
{
Label2->Caption=Memo1->Lines->Strings[j];
}
}
 
}
текст примерно такой
S: Первые точки окостенения в длинных трубчатых костях появляются:
-: в последние недели пренатального онтогенеза
-: в первые недели постнатального онтогенеза
+: на 2-3 месяцах пренатального онтогенеза
-: на 2-3 месяцах плодного периода
I: ТЗ 4 Тема 1-1-0
S: Синостоз - это:
-: форма возрастной перестройки костной ткани
+: костная форма соединения костей
-: оперативный способ соединения отломков костей после переломов
-: форма метаплазии суставного хряща

всегда начинается вопрос с S: а правильный ответ +:
Исправьте меня пожалуйста..
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.06.2014, 23:35
Ответы с готовыми решениями:

Поиск слова в тексте
Подскажите если в курсе как в тексте состоящем из множества строк найти конкретное слово? (на...

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

Поиск слова в тексте и присвоение переменной этого слова
Здравствуйте. Помогите пожалуйста решить проблему. Есть файл index.html в нем есть слово, допустим...

Поиск слова в тексте
Имеется текст(записанный построчно) - считываю его в tmpText Так же есть слово - tmpSlovo Как...

5
Практикантроп
4670 / 2593 / 493
Регистрация: 23.09.2011
Сообщений: 5,567
22.06.2014, 23:56 2
Чего-то вы намудрили, по моему. После нахождения вопроса (j=i) цикл следует прервать, на всякий случай (break;), а второй цикл определить так: for( ; j< Memo1->Lines->Count; j++) - начальное значение j уже задано.
0
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
23.06.2014, 09:05 3
M Dukaev, Вам правильно подсказал nick42, так как Вы задали первую грань поиска правильного Вопроса (j=i) Вам же надо найти правильный ответ этого вопроса, но в цикле Вы идете от j (найденного вопроса) до Memo1->Lines->Count (конца вашего Memo) соответственно результатом будет последний найденный "+". break Вас спасет в данном случае , чтоб цикл прервался при нахождении первого "+".
0
4030 / 2320 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
23.06.2014, 11:53 4
И раз уж формат строгий, здесь не нужен Pos() - это лишь источник потенциальных ошибок...
C++
1
if( Memo1->Lines->Strings[ j ].Trim( )[1] == '+' )
0
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 12
23.06.2014, 15:57  [ТС] 5
выдает ошибку после поиска.

Добавлено через 58 секунд
просто break; после строки j=i; ?

Добавлено через 7 минут
пустой лайбел2 выдает...
0
4030 / 2320 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
23.06.2014, 19:42 6
Лучший ответ Сообщение было отмечено M Dukaev как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    for ( int i = 0; i < Memo1->Lines->Count; ++i )
    {
        if ( Memo1->Lines->Strings[ i ].Pos( Edit1->Text ) )
        {
            Label1->Caption = Memo1->Lines->Strings[ i ];
            for ( ; ++i < Memo1->Lines->Count; )
            {
                if ( Memo1->Lines->Strings[ i ].Trim( )[ 1 ] == '+' )
                {
                    Label2->Caption = Memo1->Lines->Strings[ i ];
                    break;
                }
            }
            break;
        }
    }
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2014, 19:42

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Поиск слова в тексте
Добрый день. Имею длинную строку. Например:

Поиск слова в тексте
Срочно нужна помощь!!!!!!!!! Надо ввести названия пункта в textBox1 нажать кнопку и это слово...

Поиск слова в тексте
Составить алгоритм поиска заданного слова в тексте. Слово и текст являются массивами символов...

Поиск слова в тексте
Доброго времени суток, имеется код, который ищет число в тексте если находит то выделяет всю...


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

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

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