Delphi 2006 system.delete for widestrings?

Bar*_*ski 2 delphi unicode delphi-2006 widestring

删除程序的对应部分是否可以用于宽字符串?或者我应该只使用复制并连接生成的WideStrings?

Ale*_*lex 5

内部RTL函数(如Delete,Insert,Length等)适用于Ansi和Wide字符串.

例如,对WideString的Delete调用转换为WStrDelete调用(请参阅System.pas).


Mas*_*ler 5

删除是一个"编译魔术"功能.编译器使用其基本数据类型的知识来适当地处理操作.对于大多数数组,它可以简单地将您在代码中编写的信息转换为实际的偏移量和需要删除的字节数,并将其传递给_Delete汇编例程.对于WideStrings,正如亚历山大指出的那样,它有一个特殊的_WStrDelete例程.

底线:如果您可以将数组或字符串传递给Delete并进行编译,那么它应该运行得很好.