在2007年德爾福排序例行我使用這樣的代碼:德爾福,如何避免D2009 unicode的警告信息,D2010
(txt[n] in ['0'..'9'])
function ExtractNr(n: Integer; var txt: String): Int64;
begin
while (n <= Length(txt)) and (txt[n] in ['0'..'9']) do n:= n + 1;
Result:= StrToInt64Def(Copy(txt, 1, (n - 1)), 0);
Delete(txt, 1, (n - 1));
end;
其中TXT是一個字符串。這在D2007中可以正常工作,但會在D2009和D2010中發出警告我不知道爲什麼,但有沒有什麼方法可以使它在D2009和D2010中不發出警告?
羅伊中號Klever
謝謝你的很好的解釋,我現在明白了,並且能夠通過使用(txt [n]> ='0')和(txt [n]> ='9')來避免警告 Roy M Klever – 2010-02-13 02:30:49
我總是禁用警告,因爲編譯器爲「WideChar in AnsiCharSet」生成完全有效的代碼。因爲我知道我的所有字符都是ASCII字符<#128,所以我沒有必要用「內聯」的CharInSet()函數來減緩緊密的循環。這可能與我喜歡快速和資源友好的代碼有關。 – 2010-02-13 13:13:46