将TSTringList Names属性排序为整数而不是字符串



我有一个大的文本数据文件,每一行看起来像这样

10005=08/18/09,No BS,25094,wrg1

和数据乱序(即等号前的数字)

我将这个文件作为名称值对加载到StringList中。TStringList排序函数当然不会,因为这些数字是字符串而不是整数。

我怎么能得到这些顺序之前加载到TStringList?

是否有一个快速的函数,我执行的文件上返回一个TStrings,我可以分配给TStringList?

thankx

function StrCmpLogicalW(sz1, sz2: PWideChar): Integer; stdcall;
  external 'shlwapi.dll' name 'StrCmpLogicalW';
function MyCompare(List: TStringList; Index1, Index2: Integer): Integer;
begin
  Result := StrCmpLogicalW(PWideChar(List[Index1]), PWideChar(List[Index2]));
end;

用法:

  StringList.CustomSort(MyCompare);

最新更新