![]() |
Array sortieren
Hallo,
ich hab einen Array. Dieser Array ist vom Typ TEintrag und besitz die String Variabeln Name und Nummer. In diesen Array werden Namen und Nummern gespeichert. Jetzt möchte ich eine Procedure schreiben, bei der dieser Array von a-Z sortiert wird. Habe über die Forum suche schon einige Sortieralghorithmen gefunden, allerdings nur für Zahlen. Wie geht da sbei Strings? Vielen Dank für die Antwort und viele Grüße Falco953 |
Re: Array sortieren
Schau Dir mal AnsiCompareStr und AnsiCompareText an.
P.S.: Willkommen in der DP :dp: |
Re: Array sortieren
Du kannst Strings auch einfahc vergleichen;
if person1.name > person2.name then |
Re: Array sortieren
Zitat:
|
Re: Array sortieren
HI,
natürlich kann man Strings ganz einfach mit <=> vergleichen vergleichen. Was anderes machen die Compare***-Prozeduren auch nicht. Für einenen besseren Einblick in die Sortierung zu bekommen, empfehle ich dir mal einen Blick in die Demos unter dem Stihwort Threads zu werfen. Dort werden 3 Integer-Arrays nach 3 verschiedenen Verfahren sortiert. Da dürfte bestimmt was für dich dabei sein. Bernhard |
Re: Array sortieren
Der Unterschied zwischen meinen genannten Funktionen und einem einfachen <>-Vergleich liegt in den lokalen Einstellungen sowie der Behandlung von Groß- und Kleinschreibung.
|
Re: Array sortieren
Ab D2009 könnte man das auch generisch lösen
|
Re: Array sortieren
soory, unter dem stichwort threads finde ich nichts passendes.
Mein problem ist ja, das der Array eingelesen, sortiert und wieder ausgegeben werden soll. habe halt leider keine ahnung, wie ich den entsprechenden algorithmus schreiebn muss. danke für die vielen antworten und grüße falco953 Zitat:
|
Re: Array sortieren
Er meint das die mit delphi mitgelieferten Demos
|
Re: Array sortieren
wecleh demos?
waren bei mir keine dabei |
Re: Array sortieren
Welche Delphi-Version hast Du denn?
|
Re: Array sortieren
was ganz einfaches zum sortieren wäre das hier:
Delphi-Quellcode:
for i:=0 to High(Arrayname)-1 do
begin for j:=i+1 to High(Arrayname) do begin if j<i then //an dieser Stelle ist auszuprobieren ob die Strings wie gewollt verglichen werden...ansonsten so umwandeln, das sie vergleichbar werden :) begin h:=Arrayname[i]; Arrayname[i]:=Arrayname[j]; Arrayname[j]:=h; end; end; end; |
Re: Array sortieren
Wobei Bubble-Sort nicht sehr performant ist
|
Re: Array sortieren
Aber einfach und verständlich :) Gut wenn das Array mehrere Tausend Elemente hat ist die Methode fehl am Platz.
|
Re: Array sortieren
Zitat:
|
Re: Array sortieren
Zitat:
|
Re: Array sortieren
vielen dank.
geht mit bubble sort super. richtig erkannt, war ne frage für den informatik unterricht. vielen dank für die antworten und viele grüße falco953 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:22 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