UnicodeString::Delete 方法

UnicodeString::Delete Method

我有一个 Unicode 字符串,我想将其限制为 30 个字符。我从查询中填充字符串,所以我不知道开头的长度。我想简单地剪掉所有超过 30 的字符。我找到了 UnicodeString::Delete() 方法,但我不知道如何使用它。

我试过了,没用:

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

您实际上是在尝试调用 System::Delete(),它不适用于 C++,仅适用于 Delphi。在内部,UnicodeString::Delete() 使用 this 作为要操作的字符串调用 System::Delete()

UnicodeString::Delete() 是一个非静态的 class 方法。您需要在字符串对象本身上调用它,而不是作为一个单独的函数。此外,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);