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

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

Войти
Регистрация
Восстановить пароль
 
time_to_go_on
0 / 0 / 0
Регистрация: 20.12.2010
Сообщений: 85
#1

Поиск в Edit - C++

28.09.2012, 23:22. Просмотров 378. Ответов 5
Метки нет (Все метки)

Привет всем. Вроде прога простая, да не разберусь как доделать её. Нужно организовать поиск подстроки в строке, т.е в едит1 вводим "asd asg asd", в едит2 "asd", по нажатии кнопки выполняется поиск "asd" и выделяется в едите1. Это я сделал, код ниже. Вопрос в другом теперь. Как сделать так, чтобы при повторном нажатии этой кнопки нашлось второе "asd" и также выделилось(первое выделять не надо)? И так было бы по кругу. Можно было бы найти позиции начала совпадений, прибавить к ним длину искомого и закрасить в ричедите, но нужно сделать именно так...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void __fastcall TFrom1::Button1Click(TObject *Sender)
{
int j; int i;
AnsiString InputStr = Edit1->Text;
AnsiString SearchStr = Edit2->Text;
j = SearchStr.Length();
   if(InputStr.Pos(SearchStr))
       {
          i = InputStr.Pos(SearchStr);
          Edit1->SetFocus();
          Edit1->SelStart= i -1;
          Edit1->SelLength = j;
          ShowMessage("Слово выделено");
       }
          else
          {
           ShowMessage("Искомого слова нет");
          }
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2012, 23:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск в Edit (C++):

Поиск символа не могу переделать под поиск сочетания символов - C++
Есть код программы на поиск и замену по одному символу.Не могу понять, как сделать код на поиск сочетания символов. Чтобы найдя в введённой...

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

Поиск циклов в графе. Поиск центра взвешенного графа - C++
В интернете, к сожалению, по этим вопросам не так уж много нашел. Можете посоветовать статью/пособие, где было бы подробно об этом написано?

Поиск числа в двумерном массиве (бинарный поиск) - C++
Произвожу поиск элемента в массиве двумя способами: линейным(последовательным) поиском и бинарным(двоичным). Первый работает на ура. Второй...

Edit - C++
Здравствуйте. Небольшая проблемка у меня возникла, с помощьюif ((Key < '0') || (Key > '9')) Key = 0x00; заблокировал ввод всего кроме цифр,...

Поиск пикселя и поиск изображения на экране - C++
Переписываю код из clickermann для запуска его на C++. Мне нужны две функции которые выполняли бы сканирование экрана и поиск пикселя...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
28.09.2012, 23:25 #2
Запоминайте результат поиска в какой-нибудь переменной. Наверняка же можно задать поиск не с начала строки, а с определенной позиции
0
time_to_go_on
0 / 0 / 0
Регистрация: 20.12.2010
Сообщений: 85
29.09.2012, 01:00  [ТС] #3
Хотел воспользоваться InputStr.find_first_of(какие-то пременные)), но у меня почему-то даже не появляется после точки iostream и string пихал, один фиг. Билдер последний(XE3 стоит)
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
29.09.2012, 01:51 #4
По билдеру точно сказать не могу, ибо не пользовался им.
Но есть такая штука - http://www.cplusplus.com/reference/string/string/find/
там можно проставить
pos - Position of the first character in the string to be taken into consideration for possible matches. A value of 0 means that the entire string is considered.
Но подозреваю, что билдеровская AnsiString не совсем то же самое..

Да, она не совсем то же самое) И методы у нее другие. Но при желании можно сделать
C++
1
std::string string_name(AnsiString_name.c_str());
0
time_to_go_on
0 / 0 / 0
Регистрация: 20.12.2010
Сообщений: 85
30.09.2012, 01:28  [ТС] #5
Цитата Сообщение от I.M. Посмотреть сообщение
Да, она не совсем то же самое) И методы у нее другие. Но при желании можно сделать
C++
1
std::string string_name(AnsiString_name.c_str());
А это здесь причём?

Добавлено через 23 часа 18 минут
Ап! Никто не знает чтоль?
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
30.09.2012, 01:59 #6
Это - конвертирование билдеровской строки в стандартную. У которой можно дернуть нужный метод.
Попробуйте еще тут спросить - http://www.cyberforum.ru/cpp-builder/
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2012, 01:59
Привет! Вот еще темы с ответами:

Из Edit в Memo - C++
Привет всем Прошу прощения за тупой вопрос, я первый раз в c++, c hello world уже справился на событие клик записал ShowMessage("Helo...

Enter в Edit'e - C++
Мне нужно обработать нажатие Enter в контроле Edit. Я прочел статью "Как обработать нажатие Enter в edit box'е"...

редактирование edit - C++
Всем привет, подскажите пожалуйста как можно сделать так чтобы edit, так же как и калькуляторе можно было вводить только одну запятую, и...

Присваивание edit переменной - C++
Добрый день. Почему то компилятор не хочет переводить char в int Код: int z ; strncpy(z, Edit5->Text.ToInt(),...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.09.2012, 01:59
Ответ Создать тему
Опции темы

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