Hallo,
danke für die Antworten!
Aber eine Datenbank find ich dafür ein wenig übertrieben.
Ich versuche jetzt gerade himitsu´s Vorschlag in die Tat umzusetzen, aber ich scheitere an der Vergleichs-function.
Zitat von
himitsu:
ach so ist das
nja, dann laß die Liste doch gleich richtig sortieren?
Delphi-Quellcode:
type
TNaturalStringList = class(TStringList)
protected
function CompareStrings(const S1, S2: string): Integer; override;
public
constructor Create;
end;
function TNaturalStringList.CompareStrings(const S1, S2: string): Integer;
begin
Result := YourNaturalCompare(S1, S2);
// also der Vergleich aus deinem Compare_NaturalSort
end;
constructor TNaturalStringList.Create;
begin
Sorted := True;
Duplicates := dupIgnore;
end;
Delphi-Quellcode:
var StringList_MN: TStringList; // oder TStrings oder was auch immer
StringList_MN := TNaturalStringList.Create;
{...}
StringList_MN.Add(S);
{...}
Ich kann gerade nichts mit der function
function TNaturalStringList.CompareStrings(const S1, S2: string): Integer;
anfangen.
Momentan ruf ich so eine Sortierroutine so auf:
StringList_MN.CustomSort(Compare_NaturalSort);
Wobei "Compare_NaturalSort" so
Delphi-Quellcode:
function Compare_NaturalSort(List: TStringList; Index1, Index2: Integer): Integer;
begin
//Natürlich sortieren (Nummern aufsteigend)
//benötigt "StrNatComp.pas"
Result := StrNatCompare(List[Index1], List[Index2]);
end;
ausschaut. Und nun weiss ich leider nicht wie ich das in die obere function einfügen soll.
(Ich muss dazusagen, dass die Sortierroutine nicht von mir ist, sondern aus dem I-Netz)
mfg
Helmi
>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<