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

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

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

Поиск в Edit - C++

28.09.2012, 23:22. Просмотров 375. Ответов 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("Искомого слова нет");
          }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2012, 23:22     Поиск в Edit
Посмотрите здесь:

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
28.09.2012, 23:25     Поиск в Edit #2
Запоминайте результат поиска в какой-нибудь переменной. Наверняка же можно задать поиск не с начала строки, а с определенной позиции
time_to_go_on
0 / 0 / 0
Регистрация: 20.12.2010
Сообщений: 85
29.09.2012, 01:00  [ТС]     Поиск в Edit #3
Хотел воспользоваться InputStr.find_first_of(какие-то пременные)), но у меня почему-то даже не появляется после точки iostream и string пихал, один фиг. Билдер последний(XE3 стоит)
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
29.09.2012, 01:51     Поиск в Edit #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());
time_to_go_on
0 / 0 / 0
Регистрация: 20.12.2010
Сообщений: 85
30.09.2012, 01:28  [ТС]     Поиск в Edit #5
Цитата Сообщение от I.M. Посмотреть сообщение
Да, она не совсем то же самое) И методы у нее другие. Но при желании можно сделать
C++
1
std::string string_name(AnsiString_name.c_str());
А это здесь причём?

Добавлено через 23 часа 18 минут
Ап! Никто не знает чтоль?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2012, 01:59     Поиск в Edit
Еще ссылки по теме:

Считывание строки из Edit - C++
Вот кусок программы, int K=2; int Lenght; char tmp; string s0; s0=Edit1->Text.c_str(); Lenght=s0.Length(); if...

Вывод в Edit массивов - C++
Всем доброго времени суток. Посмотрите есть вот такой код: int num,o; char buff; num = StrToInt(Edit23->Text); o =...

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

Hex edit dll - C++
Помогите написать dll. Суть такова, в файле нужно в промежутке с 0x00000000 до 0x0000000f внести определенные значение, сохранить, потом в...


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

Или воспользуйтесь поиском по форуму:
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
30.09.2012, 01:59     Поиск в Edit #6
Это - конвертирование билдеровской строки в стандартную. У которой можно дернуть нужный метод.
Попробуйте еще тут спросить - http://www.cyberforum.ru/cpp-builder/
Yandex
Объявления
30.09.2012, 01:59     Поиск в Edit
Ответ Создать тему
Опции темы

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