UnicodeString:: Удалить метод

У меня есть строка Unicode, которую я хочу ограничить до 30 символов. Я заполняю строку из запроса, поэтому не знаю, с какой длины начать. Я хочу просто отхватить всех персонажей после 30. Я нашел UnicodeString::Delete() метод, но я не знаю, как его использовать.

Я попробовал это безрезультатно:

mystring = <code here to populate the unicode string mystring>
Delete(mystring, 30, 100);

1 ответ

Решение

Вы на самом деле пытаетесь позвонить System::Delete(), который не доступен для C++, только для Delphi. Внутренне UnicodeString::Delete() звонки System::Delete() с помощью this в качестве строки для манипулирования.

UnicodeString::Delete() это нестатический метод класса. Вы должны вызывать его для самого строкового объекта, а не отдельной функции. Также, Delete() индексируется 1, а не 0:

mystring.Delete(31, MaxInt);

Если вы хотите использовать 0-индексирование, используйте UnicodeString::Delete0() вместо:

mystring.Delete0(30, MaxInt);

Тем не менее UnicodeString::SetLength() Метод будет более подходящим в этой ситуации:

if (mystring.Length() > 30)
    mystring.SetLength(30);

Кроме того, вы можете использовать UnicodeString::SubString() / UnicodeString::SubString0():

mystring = mystring.SubString(1, 30);

mystring = mystring.SubString0(0, 30);
Другие вопросы по тегам