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);
我有一个 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);