Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Array Sortieren (https://www.delphipraxis.net/14446-array-sortieren.html)

Plat 9. Jan 2004 14:58


Array Sortieren
 
Hi Leute...

Ich würde gerne ein Array nach z.B. einem Namen sortieren (Alphabetisch).

Wie stelle ich das an ?

Danke im Voraus.

Matze 9. Jan 2004 15:00

Re: Array Sortieren
 
Die Buchstaben kannst du mittels ACSII Code sortieren.

Sortieralgos findest du hier.

Plat 9. Jan 2004 15:04

Re: Array Sortieren
 
und wie verändere ich dann die Position in einem ListBox ?

Wenn ich das noch wüsste ;)

Danke.

Matze 9. Jan 2004 15:07

Re: Array Sortieren
 
An deiner Stelle würde ich das array sortieren und dann in die ListBox einlesen. Das ist das Einfachste.

Plat 9. Jan 2004 15:13

Re: Array Sortieren
 
Hmm ich Dummdödel ;)


Noch ne letzte Frage

Delphi-Quellcode:
with ListBox1 do
    begin
      For i:=1 to high(SchuelerArr) do
        begin
          Items.Add(SchuelerArr[i].Name);
        end
    end;
Wenn ich das Array so auslese, dann entstehen lücken zwischen den Feldern in der ListBox... also ein Bsp.
Delphi-Quellcode:
SchuelerArr[2].Name:='Bla';
und
Delphi-Quellcode:
SchulerArr[200].Name:='Blupp';
Dann enstehen eben zwischen 2 und dem Feld 200 198 Lücken ;) wie kann ich das beheben ? :gruebel:


DANKE :love:

Matze 9. Jan 2004 15:15

Re: Array Sortieren
 
Ich verstehe nicht ganz, wie du das machst, also ich würde es, mit Zahlen, so lösen. Buchstaben ist ähnlich:

Delphi-Quellcode:
procedure TForm1.Swap(var i,j: integer);
var h: integer;
begin
  h:=i;
  i:=j;
  j:=h;
end;

procedure TForm1.Sortiere;
var i,j: integer;
begin
  for i:=0 to ListBox1.Count-1 do    for j:=i+1 to ListBox1.Count do
    begin
      if tab[j]<tab[i] then Swap(tab[i],tab[j]);
    end;
end;

procedure TForm1.ArrayFuellen;
var i: integer;
    von, bis: integer;
begin
  ListBox1.Clear;

  for i:=0 to 200 do
  begin
    tab[i]:=random(101); //Zufallszahlen von 0-100
    ListBox1.Items.Add(IntToStr(tab[i]));
  end;
end;

procedure TForm1.SortClick(Sender: TObject);
var i: integer;
begin
  Sortiere;

  ListBox2.Clear;
  for i:=0 to ListBox1.Count-1 do
  ListBox2.Items.Add(IntToStr(tab[i]));
end;

Tpercon 9. Jan 2004 15:37

Re: Array Sortieren
 
Die zweite Schleife (j := ...) sollte aber nur bis ListBox1.Count - 1 gehen, sonst gibt's nen schönen Fehler. Wobei ich mich beim Sortieren nur auf das Array (mit Hilfe von low und High) beziehen würde und anschließend die ListBox clearen und das Array neu einfügen würde.

Haegar 9. Jan 2004 15:40

Re: Array Sortieren
 
Zitat:

Zitat von Plat
wie kann ich das beheben ?

ganz einfach...
Delphi-Quellcode:
with ListBox1 do
    begin
      For i:=1 to high(SchuelerArr) do
        begin
          if (SchuelerArr[i].Name<>'') then  
            Items.Add(SchuelerArr[i].Name);
        end
    end;
is aber nicht hilfreich, wenn man zum beispiel ein leerzeichen oder so eingibt, dann erscheint trotzdem ein leerer eintrag.

ciao haegar

Tpercon 9. Jan 2004 15:46

Re: Array Sortieren
 
Zitat:

Zitat von Haegar
Zitat:

Zitat von Plat
wie kann ich das beheben ?

is aber nicht hilfreich, wenn man zum beispiel ein leerzeichen oder so eingibt, dann erscheint trotzdem ein leerer eintrag.

Dafür gibt es dann ja die Funktion trim.

Plat 9. Jan 2004 15:46

Re: Array Sortieren
 
Zitat:

Zitat von Haegar
Zitat:

Zitat von Plat
wie kann ich das beheben ?

ganz einfach...
Delphi-Quellcode:
with ListBox1 do
    begin
      For i:=1 to high(SchuelerArr) do
        begin
          if (SchuelerArr[i].Name<>'') then  
            Items.Add(SchuelerArr[i].Name);
        end
    end;
is aber nicht hilfreich, wenn man zum beispiel ein leerzeichen oder so eingibt, dann erscheint trotzdem ein leerer eintrag.

ciao haegar

Das mit dem Leerzeichen ist kein Problem, denn man muss ja einen Namen eigneben ! :D

Danke.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:25 Uhr.
Seite 1 von 5  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz