AGB  ·  Datenschutz  ·  Impressum  







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

Array Sortieren

Ein Thema von Plat · begonnen am 9. Jan 2004 · letzter Beitrag vom 13. Jan 2004
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    
Plat

Registriert seit: 17. Dez 2003
40 Beiträge
 
#1

Array Sortieren

  Alt 9. Jan 2004, 15:58
Hi Leute...

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

Wie stelle ich das an ?

Danke im Voraus.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Array Sortieren

  Alt 9. Jan 2004, 16:00
Die Buchstaben kannst du mittels ACSII Code sortieren.

Sortieralgos findest du hier.
  Mit Zitat antworten Zitat
Plat

Registriert seit: 17. Dez 2003
40 Beiträge
 
#3

Re: Array Sortieren

  Alt 9. Jan 2004, 16:04
und wie verändere ich dann die Position in einem ListBox ?

Wenn ich das noch wüsste

Danke.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Array Sortieren

  Alt 9. Jan 2004, 16:07
An deiner Stelle würde ich das array sortieren und dann in die ListBox einlesen. Das ist das Einfachste.
  Mit Zitat antworten Zitat
Plat

Registriert seit: 17. Dez 2003
40 Beiträge
 
#5

Re: Array Sortieren

  Alt 9. Jan 2004, 16:13
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. SchuelerArr[2].Name:='Bla'; und SchulerArr[200].Name:='Blupp'; Dann enstehen eben zwischen 2 und dem Feld 200 198 Lücken wie kann ich das beheben ?


DANKE
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Array Sortieren

  Alt 9. Jan 2004, 16:15
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;
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#7

Re: Array Sortieren

  Alt 9. Jan 2004, 16:37
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.
  Mit Zitat antworten Zitat
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#8

Re: Array Sortieren

  Alt 9. Jan 2004, 16:40
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
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#9

Re: Array Sortieren

  Alt 9. Jan 2004, 16:46
Zitat von Haegar:
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.
  Mit Zitat antworten Zitat
Plat

Registriert seit: 17. Dez 2003
40 Beiträge
 
#10

Re: Array Sortieren

  Alt 9. Jan 2004, 16:46
Zitat von Haegar:
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 !

Danke.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    


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:41 Uhr.
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