Hey, sehr gut hast du das gemacht mit der Suchfunktion!
Also mit dem Sortieren:
Ich würde als erstes eine Funktion bauen, die dir zwei Einträge deines Telefonbuchs tauscht. Dann kannst du den rest mit gängigen Sortieralgorithmen machen.
Also fangen wir mal an:
Delphi-Quellcode:
procedure TForm1.TauscheTelefonbuchEintrag(Index1,Index2:integer);
var TauschName,TauschTelefonnummer:string;
Anzahl:integer;
begin
//zunächst sicherstellen, dass beide Einträge kleiner als die Anzahl der Telefonbucheinträge sind:
Anzahl:=Telefonbuch.count div 2;
if (Index1>Anzahl-1) or (Index2>Anzahl-1) then exit;
//Den Eintrag mit Nummer Index1 in dem Zwischenspeicher schreiben:
Tauschname:=Telefonbuch[2*Index1];
TauschTelefonnummer:=Telefonbuch[2*Index1+1];
//Eintrag Index2 in Eintrag Index1 schreiben:
Telefonbuch[2*Index1]:=Telefonbuch[2*Index2];
Telefonbuch[2*Index1+1]:=Telefonbuch[2*Index2+1];
//Eintrag Index2 aus Zwischenspeicher lesen:
Telefonbuch[2*Index2]:=Tauschname;
Telefonbuch[2*Index2+1]:=TauschTelefonnummer;
end;
//edit: zwei kleine Fehler entfernt (um 15.06 Uhr)