Registriert seit: 11. Apr 2004
Ort: Kanada
136 Beiträge
Delphi 2010 Professional
|
Re: Wie logisch richtig sortieren: 1,2,3,21 (nicht 1,2,21,3)
25. Dez 2005, 18:28
Zitat von Der_Ventilator:
OK, wie oben genannt wird dort folgende Funktion angeboten:
Delphi-Quellcode:
//****************************************************************************//
function NatCompareText( const S1, S2: WideString): Integer;
begin
SetLastError(0);
Result := CompareStringW(LOCALE_USER_DEFAULT,
NORM_IGNORECASE or
NORM_IGNORENONSPACE or
NORM_IGNORESYMBOLS,
PWideChar(S1),
Length(S1),
PWideChar(S2),
Length(S2)) - 2;
case GetLastError of
0: ;
ERROR_CALL_NOT_IMPLEMENTED: Result := DumbItDownFor95(S1,
S2,
NORM_IGNORECASE or
NORM_IGNORENONSPACE or
NORM_IGNORESYMBOLS);
else
RaiseLastOSError;
end;
end;
//****************************************************************************//
//****************************************************************************//
//Und falls es doch Probleme gibt (wurde im PSDK extra drauf hingewiesen):
function DumbItDownFor95( const S1, S2: WideString; CmpFlags: Integer): Integer;
var
a1, a2: AnsiString;
begin
a1 := s1;
a2 := s2;
Result := CompareStringA(LOCALE_USER_DEFAULT, CmpFlags, PChar(a1), Length(a1),
PChar(a2), Length(a2)) - 2;
end;
Nur leider funktioniert sie überhaupt nicht.
Sie bewertet immer noch '2' größer als '14'.
Codito, ergo sum. - I code therefore I am
|
|
Zitat
|