Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.316 Beiträge
 
Delphi 12 Athens
 
#3

Re: Wörter alphabetisch Sortieren!

  Alt 7. Jan 2004, 17:32
Wenn weniger als 30 Zeilen im Memo sind, dann wird irgendwie der Zähler durcheinander gebracht.
Und das Programm reagiert anders als es soll.

Bei mir ist zum Beispiel i = 29 im 1. Durchlauf, obwohl es ja bei diesem CodeFor i := 0 to 28 do Begin i = 0 sein sollte. Demnach gibt es auch einen netten Zugriffsfehler.
Code:
If Namen[i, k] <> Namen[[color=red]i + 1[/color], k] Then
Namen[30] existiert ja nicht.

Davon abgeseh'n funktioniert deine Sortierfunktion nicht.

Delphi-Quellcode:
Uses Math;

Var Namen: Array[0..29] of String;

Procedure TForm1.Button1Click(Sender: TObject);
  Var i, k: Integer;
    Temp: String; // Temporäre Variable

  Begin
    {Namen einlesen}
    For i := 0 to 29 do Namen[i] := '';
    For i := 0 to Min(29, Memo1.Lines.Count - 1) do
      Namen[i] := Memo1.Lines[i];
    {Sortieren}
    For i := 0 to 28 do Begin
      k := 1;
      Repeat
        If Namen[i, k] <> Namen[i + 1, k] Then
        If Namen[i, k] > Namen[i + 1, k] Then Begin
          temp := Namen[i];
          Namen[i] := Namen[i + 1];
          Namen[i + 1] := temp;
        End;
      Until (Namen[i, k] <> Namen[i + 1, k]);
      Inc(k);
    End;
    {Namen ausgeben}
    Memo1.Lines.Clear;
    For i := 0 to 29 do
      If Namen[i] > 'Then Memo1.Lines.Add(Namen[i]);
  End;
Ach ja, ich hab nur das Ein- und Auslesen der Namen überarbeitet, das funktioniert jetzt ohne Probleme.
An der Sortierfunktion wurde nichts geändert, da ich einfach nicht kapiere, was du da machen willst.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat