Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat