C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Поиск слова, AnsiString
Лена
Отправлено: 09.10.2006, 14:56


Мастер участка

Группа: Участник
Сообщений: 501



Программа во время работы формирует предложение. Подскажите как проще получить последнее слово в этом предложении? Каждый раз формируется предложение разной длинны.
Примеры формируемых строк:
void Calculation([in]XlCalculation) PROPERTYPUT
void* Range([in]VARIANT,[in]VARIANT) PROPERTYGET
и т.д.
Мне надо программно проанализировать такую строку и получить только последнее слово: PROPERTYPUT или PROPERTYGET

P.S.
Извините не в тот раздел тему написала. wizard.gif

Отредактировано Лена — 09.10.2006, 15:04
beginner
Отправлено: 09.10.2006, 15:26


Дежурный стрелочник

Группа: Участник
Сообщений: 44



Один вариант. Но слово не должно заканчиваться на пробел.
CODE
AnsiString s = "void* Range([in]VARIANT,[in]VARIANT) PROPERTYGET";

char *ch = s.c_str() + s.Length() — 1;
while(ch > s.c_str())
{
if(*ch==32)
  {
    ch++;
    break;
  }
ch--;
}
ShowMessage(ch);


Отредактировано beginner — 09.10.2006, 15:48
Лена
Отправлено: 09.10.2006, 15:49


Мастер участка

Группа: Участник
Сообщений: 501



Вот ще такой вариант возник: ищу последний пробел и далее отсекаю от него до конца строки. Так пойдет? (Строка в Edit1).

Вроде работает:
AnsiString GetPropWord = Edit1->Text;
int poisk = GetPropWord.LastDelimiter(" ");
GetPropWord = Trim(GetPropWord.SubString(poisk,GetPropWord.Length()));



Отредактировано Лена — 09.10.2006, 15:54
beginner
Отправлено: 09.10.2006, 16:00


Дежурный стрелочник

Группа: Участник
Сообщений: 44



QUOTE (Лена @ 09.10.2006, 15:49)
Вот ще такой вариант возник: ищу последний пробел и далее отсекаю от него до конца строки. Так пойдет? (Строка в Edit1).

Вроде работает:
AnsiString GetPropWord = Edit1->Text;
   int poisk = GetPropWord.LastDelimiter(" ");
   GetPropWord = Trim(GetPropWord.SubString(poisk,GetPropWord.Length()));

Пойдет. Но тоже при условии, что строка не заканчивается на пробел. И тогда уже лучше

GetPropWord = GetPropWord.SubString(poisk+1,GetPropWord.Length());

AVC
Отправлено: 10.10.2006, 10:28


Ветеран

Группа: Модератор
Сообщений: 1583



Trim и анализ предпоследнего символа строки если вы гарантируете обязательное завершение строки PROPERTYPUT или PROPERTYGET
olegenty
Отправлено: 10.10.2006, 12:06


Ветеран

Группа: Модератор
Сообщений: 2412



или просто Pos/AnsiPos

Вернуться в Работа с базами данных в C++Builder