![]() |
Zahlen ohne Array sortieren?
Hallo Leute, ist es möglich Zahlen in einem Memofeld ohne Array Zuweisung zu sortieren Bsp. ich gebe über ein Edit Feld mehrere Zahlen in das Memofeld, kann ich diese dann hinterher noch sortieren oder muss ich diese vorher einem Array zuweisen?
Gruß Chippie |
Re: Zahlen ohne Array sortieren?
Wieso schreibst du die Zahlen in ein Memo? Nimm doch eine TListBox, die bringt die Methode Sort gleich mit. :)
MfG freak |
Re: Zahlen ohne Array sortieren?
Bei Zahlem im Memo müsstest du auch aufpassen, dass die Zahlen als Zahlen und nicht als Strings sortiert werden.
Mein einer Methode wie Memo1.lines.sort würde z.b. 12 kleiner 2 sein, da erst die erste Stelle geprüft wird, und nur bei Ungleichheit überprüft wird, ob es überhaupt eine nächste gibt. |
Re: Zahlen ohne Array sortieren?
Wie liegen denn die Zahlen vor?
Untereinander? Oder müssen sie erst noch getrennt werden? Wenn pro Zeile eine Zahl steht, kannst du entweder ganz normal sortieren, musst dann allerdings eine ganze Menge strToInt Anweisungen durchführen, was bestimmt nicht effezient ist. Oder du suchst nach der Längsten Zahl, und vergleichst alle anderen der Länge nach... d.H, bei Zahlen gleicher Länge wird solange jede Stelle verglichen, bis eine größer ist ... Vorteil: keine Überzahl an StrToInts ... Nachteil ... Implementierung zu Fuß, ohne Standard-Sortieralgos mfG Markus |
Re: Zahlen ohne Array sortieren?
Wie sieht das denn bei der Listbox mit dem sortieren aus?
Zuerst gebe ich den Text folgendermaßen ein:
Delphi-Quellcode:
procedure TForm1.EingabeClick(Sender: TObject);
begin listbox1.items.add(edit1.text); end; Gruß Chippie |
Re: Zahlen ohne Array sortieren?
Die Zahlen stehen alle untereinander.
|
Re: Zahlen ohne Array sortieren?
Dann sollten das neue Zeilen werden.
Wenn du auf die Listbox-Sortierung zurückgreifen willst: Listbox.sorted := true; Allerdings hab ich keine Ahnung, ob man zwischen logischer unt automatischer Sortierung umschalten kann. mfG Markus Ach ja, es gibt eine Edit-Funktion, dann bruacht man nicht für jede Message einen neuen Post machen |
Re: Zahlen ohne Array sortieren?
Danke, das funktioniert jetzt hat Delphi nur noch das Problem mit der ersten Stelle.
Gibt es dafür auch eine Lösung oder ist immer noch der Bubblesort am besten? Wie würde man denn hier den Bubblesort anwenden, wenn ich die Zahlen vorher keinem Array zugewiesen habe? Gruß Chippie |
Re: Zahlen ohne Array sortieren?
Darf man mal Fragen, warum du so eine Abneigung gegen Arrays hast? :gruebel:
MfG freak |
Re: Zahlen ohne Array sortieren?
Und was für ein Problem mit der ersten Stelle? du meinst folgende Sortierung:
1 123 2 250 Entweder du kannst einen FLag setzen, dass du eine andere Sortierung wünscht, oder du musst selst eine Sortierung implementieren, siehe meine vorherigen Posts. mfG Markus |
Re: Zahlen ohne Array sortieren?
also ich würde die eingaben in ner TStringList "puffern" und dann nur
zum anzeigen dann an ne listbox oder n memo binden.
Delphi-Quellcode:
var
List: TStringList; implementation function SortFunc(List: TStringList; Index1, Index2: Integer): Integer; var a, b: integer; begin a := StrToInt(List[Index1]); b := StrToInt(List[Index2]); result := a - b; end; procedure TForm1.ButtonAddClick(Sender: TObject); begin List.Add(Edit1.Text); List.CustomSort(SortFunc); Memo1.Lines := List; end; initialization List := TStringList.Create; finalization List.free; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:41 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