Bootstrap

【delphi】TStringlist.sort 的CaseSensitive 是true或false,都是大小写不敏感解决方法

通过查看TStringList源代码,正确如下使用就可以区分大小写的,delphi的帮助文件说的不是很清楚。主要在一些需要签名的时候排序有用!  

var
  TL : TStringList;


  //具体使用
  TL.Sorted := False;
  TL.CaseSensitive := True;    //此句设置排序大小写敏感
  TL.UseLocale     := False;   //切记必须有这一句,否则排序会出现 大写字母不在小写前面的问题
  
  //****** TL 的相关操作 ******

  TL.Sort;

delphi 相关排序源代码如下:

function TStringList.CompareStrings(const S1, S2: string): Integer;
begin
  if UseLocale then
    if CaseSensitive then
      Result := AnsiCompareStr(S1, S2)
    else
      Result := AnsiCompareText(S1, S2)
  else
    if CaseSensitive then
      Result := CompareStr(S1, S2)          //我们需要执行这个排序 ...
    else
      Result := CompareText(S1, S2);
end;

;