delphi – 检查字符串是否可以在XE4及更高版本中安全地转换为Ans
发布时间:2020-12-15 09:21:02 所属栏目:大数据 来源:网络整理
导读:在Delphi XE4及更高版本中,我们可以编写如下内容: function TestAnsiCompatible(const aStr: string): Boolean;beginend; Delphi XE4中的字符串声明为UnicodeString.它可能包含一个unicode字符串. 如果我们做一些类型转换: function TestAnsiCompatible(co
在Delphi XE4及更高版本中,我们可以编写如下内容:
function TestAnsiCompatible(const aStr: string): Boolean; begin end; Delphi XE4中的字符串声明为UnicodeString.它可能包含一个unicode字符串. 如果我们做一些类型转换: function TestAnsiCompatible(const aStr: string): Boolean; var a: AnsiString; begin a := aStr; Result := a = aStr; end; 一些编译器警告应该提示: [dcc32 Warning]: W1058 Implicit string cast with potential data loss from 'string' to 'AnsiString' [dcc32 Warning]: W1057 Implicit string cast from 'AnsiString' to 'string' 有没有一种简单而简洁的方法来测试aStr是否与AnsiString完全兼容?或者我们将按字符检查字符: function TestAnsiCompatible(const aStr: string): Boolean; var C: Char; begin Result := True; for C in aStr do begin if C > #127 then begin Result := False; Break; end; end; end; 解决方法
你所要做的就是输掉警告:
function TestAnsiCompatible(const aStr: string): Boolean; var a: AnsiString; begin a := AnsiString(aStr); Result := String(a) = aStr; end; 哪个可以简化为: function TestAnsiCompatible(const aStr: string): Boolean; begin Result := String(AnsiString(aStr)) = aStr; end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |