为什么SameText不工作?

max*_*fax 0 delphi string text case

为什么

if SameText(ListBox1.Items[i],Edit1.Text)=true then
Run Code Online (Sandbox Code Playgroud)

不行?它区分大小写(字符串有不同的情况),但必须不是.字符串是unicode.如果字符串具有相同的情况,它可以工作.

谢谢!

JRL*_*JRL 10

根据SysUtils.pas(DELPHI-XE),SameText "具有相同的8位限制,CompareText ",并在CompareText "的操作是基于每个字符的8位的顺序值进行比较,转换'A’之后. .'z'到'A'..'Z',并且不受当前用户区域设置的影响."

因此,您似乎正在尝试比较8位范围之外的一些字符.

编辑:你应该尝试AnsiSameText.

  • "在内部,AnsiSameText()使用Win32 API CompareStringW()函数(无论如何在Windows平台上)来处理所有事情." - https://forums.embarcadero.com/thread.jspa?threadID=22016 (3认同)