LastDelimiter не находит последний пробел - PullRequest
0 голосов
/ 18 декабря 2018

Я использую C ++ Builder 10.2 Токио, и мне нужно найти позицию последнего пробела в переменной String, значение которой равно "XXX YYYYY TYUR KXYZ";

Если я использую функцию LastDelimiter(const System::UnicodeString Delimiters, const System::UnicodeString S) он возвращает 0, но если я использую метод UnicodeString method::LastDelimiter( UnicodeString Delimiter ), он возвращает длину переменной.

Вот код, который я использую:

void TMyClass::SetVerbo()
{
    int nPosCut = 0;

    if( !this->Message.IsEmpty() ) // Message is a UnicodeString (String)
    {
        nPosCut = this->Message.LastDelimiter(String(" ")) + 1 ;
    }
    if( nPosCut > 0 )
        this->Verbo = this->Message.SubString(nPosCut, this->Message.Length() -nPosCut ) ;
}

При отладке вызова методаэто дает мне правильное значение (34), хотя результат в nPosCut равен 42 (длина сообщения), как написано в коде, или 0, если я изменяю String(" ") на L" ".

Что такоеЯ делаю не так?

...