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);