Ich habe in meinem Programm eine function, welche mir einen gegebenen string sortieren soll.
z.B. : '7,3,11,5,1' --> '1,3,5,7,11'
Dazu gebe ich meiner function einen string in solch einer Form, also durch Kommas abgetrennte Zahlen. Daraufhin soll es die einzelnen Zahlen separieren und in einem Array aufteilen. Daraufhin durch meinen Such-Algorithmus die einzelnen Glieder jeweils vergleichen und in ein anderes Array in geordneter Reihenfolge kopieren. Und als Ausgabe diese einfach wieder durch Kommas getrennt als einzelnen string ausgeben.
Die einfachste Möglichkeit, diese Aufgabe zu lösen, bestünde wohl darin, eine TStringList zu verwenden, mittels DelimitedText einlesen, den Delimiter auf Komma stellen und StrictDelimiter auf True. Danach setzt du das Sort-Property auf True und gibst als Result den DelimitedText aus:
Delphi-Quellcode:
Function SortiereZahlen(Eingabe : String) : String;
Var
MyList : TSTringList;
Begin
Result := ''; // setzt Result auf Leerstring; Fehler kannst dann daran erkennen
MyList := TStringList.Create; // erzeugen einer Stringliste
MyList.Delimiter := ','; // Trennzeichen = Komma
MyList.StrictDelimiter := True; // sorgt dafür, daß nur das Komma als Trennzeichen verwendet wird
Try
MyList.DelimitedText := Eingabe; // hier wird dein String automatisch in einzelne Items zerlegt
MyList.Sorted := True; // schaltet die Sortierung der Stringliste ein
Result := MyList.DelimitedText; // weist der Rückgabe-Variablen den sortierten String zu
Finally
MyList.Free;
End;
End;