【发布时间】:2012-10-21 20:59:35
【问题描述】:
我正在将一个旧项目移植到 Delphi XE,并在下面的代码中收到此警告。
function RemoveThousandSeperator(Text: String) : String;
Var P : Integer;
begin
if length(Text) > 3 then begin
p := Pos(FormatSettings.ThousandSeparator,Text);
while p >0 do begin
Delete(Text,p,1);
p := Pos(FormatSettings.ThousandSeparator,Text);
end;
end;
result := Text;
end;
甚至 FormatSettings.ThousandSeparator 也是 char 类型。
LE:我在问是否有人可以告诉我为什么会出现此警告。代码旧了,会重新制作。
LE2 : 为了得到这个警告,需要在 Delphi 编译器提示和警告中将所有警告设置为 true
LE3:如果有人需要它 - {$WARN UNSAFE_CAST OFF} 会发出警告。
LE4:对于那些认为警告难以相信的人的警告截图
【问题讨论】:
-
你应该发布完整的功能,你提供的片段还不够。
-
我不明白 -1。谁能给我解释一下?
-
我刚刚签入 XE2,这段代码没有产生警告。
-
@JensMühlenhoff - 我放了整个例程。无论如何,警告与整个例程无关。
-
看起来像是 XE 特有的。 XE2 在没有警告的情况下编译它就好了。附言
StringReplace听起来像是更短的代码。