截断AnsiString

时间:2018-05-02 12:14:04

标签: c++ c++builder ansistring

我正在使用Rad Studio,c ++ builder。 AnsiString大小的大小约为2 ^ 31个字符。我该如何检查长度?

History

1 个答案:

答案 0 :(得分:-1)

正如我在reference中看到的那样,Delete的两个参数均为int,其最大值低于2^31。你似乎不需要这样的检查。

无论如何,如果你想获得2的整数幂,你可以使用二元移位算子:

1ull << 31

二进制移位运算符以所有位在所需方向上移位的方式处理整数位。例如,

Operation   Bits   Shifted bits 10-based
1 << 1    00000001   00000010      2
1 << 2    00000001   00000100      4
4 << 2    00000100   00010000      16

等等。因此1ull << 312^31ull表示我们使用64位数字,因为int对于它来说很小。

要使用Delete删除剩余尾部,它应该像

ExportFileName.Delete(1 << 10, ExportFileName.Length());

ExportFileName.SetLength(1 << 10);

可能你不需要事先检查长度。只需DeleteSetLength。如果它已经满足,则不会执行任何操作。