UnicodeString :: Delete方法

时间:2018-08-01 00:38:20

标签: c++builder-10.2-tokyo

我有一个Unicode字符串,我希望限制为30个字符。我从查询中填充字符串,所以我不知道开头的长度。我只想剪掉30岁以后的所有字符。我找到了UnicodeString::Delete()方法,但是我不知道如何使用它。

我尝试这样做无济于事:

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

1 个答案:

答案 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);
相关问题