Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Поиск текста вверх


Автор: BIV 7.6.2013, 23:20
Всем доброе время суток!
Помогите пожалуйста реализовать поиск текста в CEdit в обратном порядке, т.е. от конца в начало.
Я реализовал поиск вперед:

Код

int nSelStart, nSelEnd;
edit1.SetFocus();  //Устанавливаю фокус на поле, чтобы получить расположение каретки
edit1.GetSel(nSelStart,nSelEnd); //Получаю позицию каретки
UpdateData(TRUE); //Чтобы получить данные с поля как со CString
nSelEnd=(int)edit.Find(_T(strFind),nSelEnd /*Сколько пропустить*/); //Получаю позицию первых символов ищущей строки
UpdateData(FALSE); //Возвращаю обратно, чтобы можно было получить результат
edit1.SetSel(nSelEnd,nSelEnd+strFind.GetLength());  //Выделяю найденное слова 
edit1.SetFocus(); //Устанавливаю фокус на поле чтобы увидеть выделение
//Вывожу ошибку если не нахожу заданное слово в текте
if(nSelEnd==-1)MessageBox("Не удается найти \x22"+strFind+"\x22","Поиск",MB_ICONINFORMATION); 


Как можно, опираясь на этот код, реализовать поиск в другую сторону?

Автор: Albor 10.6.2013, 07:02
Как вариант, получить реверсивную копию исходной(edit.MakeReverse()) и строки поиска (strFind.MakeReverse()), и потом уже искать нужное. После высчитать позицию найденного.

Автор: BIV 26.6.2013, 16:05
Albor, спасибо!) Разобрался

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)