我有一个Unicode字符串,我希望限制为30个字符。我从查询中填充字符串,所以我不知道开头的长度。我只想剪掉30岁以后的所有字符。我找到了UnicodeString::Delete()
方法,但是我不知道如何使用它。
我尝试这样做无济于事:
mystring = <code here to populate the unicode string mystring>
Delete(mystring, 30, 100);
答案 0 :(得分:3)
您实际上是在尝试调用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);