gpt4 book ai didi

string - 如何在现代 Delphi 中将 AnsiString 转换为整数?

转载 作者:行者123 更新时间:2023-12-03 18:16:21 24 4
gpt4 key购买 nike

这与 SameText 问题略有不同。

我需要将 AnsiString 转换为 Integer

var
param: AnsiString;
num: Integer;
begin
if TryStrToInt(param, num) then
...

在 Unicode 之前的 Delphi 中,我会使用 TryStrToInt 函数,但在现代 Delphi 中只有它的 Unicode 版本,所以我收到这个警告:W1057 Implicit string cast from 'AnsiString' to调用时“字符串”。

我的问题是,如何在现代 Delphi 中正确转换 AnsiStrings 而不会收到编译器警告(并且不必过度地将字符串转换为 UnicodeString(text))

最佳答案

您有多种选择:

  1. 接受并拥护 Unicode。停止使用 AnsiString
  2. 使用到 string 的显式转换:TryStrToInt(string(param), num)
  3. 禁用警告 W1057。
  4. 通过调用 MultiByteToWideChar 自行执行从 ANSI 到 UTF-16 的转换。这不是一个严肃的选择,但如果您想启用 W1057,而不使用显式转换,那么剩下的就是它。

坦率地说,选项 1 是首选。如果您尝试在代码中坚持使用 AnsiString,您将陷入无穷无尽的转换和警告的泥潭中。如果您需要 ANSI 编码的字符串,它很可能处于互操作边界。也许您正在读取或写入使用 ANSI 编码的文件。在互操作边界执行 ANSI 和 UTF-16 之间的转换。其余时间,对于您的内部代码,请使用 string

关于string - 如何在现代 Delphi 中将 AnsiString 转换为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19001292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com