AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe für ein Delphi Sortierprogramm!!!!!!

Offene Frage von "Scraffy"
Ein Thema von Scraffy · begonnen am 24. Okt 2006 · letzter Beitrag vom 30. Okt 2006
Antwort Antwort
DocE

Registriert seit: 25. Mär 2004
108 Beiträge
 
#1

Re: Hilfe für ein Delphi Sortierprogramm!!!!!!

  Alt 26. Okt 2006, 19:18
N'Abend!

So wie es aussieht, liegt das daran, dass Du die Strings in "Namen" einliest:

Delphi-Quellcode:
procedure TForm1.btEinlesenClick(Sender: TObject);
begin
  inc(n); namen[n]:=edEingabe.text;
  edEingabe.Text:= '
end;
aber später die leere (?) Listbox sortieren lässt:

BubbleSort(listAusgabe.Items); und anschließend das letzte item von "Namen" in die Listbox schreibst:

listAusgabe.items.add(namen[n]);
Das ganze kann also gar nicht funktionieren. Es ist verwunderlich, dass überhaupt alle Namen wieder ausgegeben werden. Klickst Du nach jedem Einlesen auf den "Ausgabe-Button"? Oder hast Du uns einen wichtigen Teil des Quelltextes vorenthalten?


Da Dein BubbleSort ein TStrings erwartet, kannst Du aber auch nicht "Namen" übergeben. Eine Möglichkeit wäre:

Delphi-Quellcode:
procedure TForm1.btAusgabeClick(Sender: TObject);
var i: integer;
begin

  listAusgabe.Items.Clear;

  // wir müssen bei 1 beginnen, da Du das erste Element in 1 schreibst
  for i:=1 to High(Namen) do
    listAusgabe.Items.Add(Namen[i]);

  BubbleSort(listAusgabe.Items);

end;

- UNGETESTET -



Allerdings wäre dann die bessere Lösung, die eingegebenen Namen gleich in die Listbox zu schreiben (ohne Array "dazwischen"), also:

Delphi-Quellcode:
procedure TForm1.btEinlesenClick(Sender: TObject);
begin
  
  listAusgabe.Items.Add(edEingabe.Text);

end;

und bei der Ausgabe dann nur noch:

Delphi-Quellcode:
procedure TForm1.btAusgabeClick(Sender: TObject);
begin

  BubbleSort(listAusgabe.Items);

end;

- Letzte Variante inzwischen ERFOLGREICH GETESTET -

Das var beim BubbleSort noch entfernen und gut. Einziges Problem ist noch der > (Größer als)-Operator. Der vergleicht auch Groß- und Kleinschreibung usw. Bessere Lösung wäre evtl. StrComp und/oder die Strings beim Vergleich AnsiUpperCase-en, also z.B.:

if AnsiUpperCase(Items[i]) > AnsiUpperCase(Items[i + 1]) then
Grüsse
...Doc
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz