Delphi-Quellcode:
function MySortCompare(List: TStringList; Index1, Index2: Integer): Integer;
var
Str1, Str2: string; // oder direkt List[...] benutzen
Flags: Dword;
begin
Str1 := List[Index1];
Str2 := List[Index2];
Flags := 9; // coDigitAsNumbers + coIgnoreCase
Result := CompareString(LOCALE_USER_DEFAULT, Flags, PChar(Str1), Length(Str1), PChar(Str2), Length(Str2)) - CSTR_EQUAL;
end;
Warum sinnlos einen langsamen und vor allem unnötigen Speichermanager benutzen, inkl. einiger unnötig aufwändiger/langsamer String-Operationen? (Strings komplett umkopieren)
WideString = nutzt den Speichermanager, bzw. eine
API des OLEAuth (OLE32)
UnicodeString = die Wide-Version des AnsiString
AnsiString/UnicodeString/UTF8String/usw. sind LongStrings und verwenden auch eine Referenzzählung, sowie den Delphi-Speichermanager (aktuell FastMM)
PS: Der Typ String[123] ist ein ShortString (nur der Vollständigkeit halber) ... sowie der Typ "String" im Delphi 1 und davor im Turbo Pascal.