| Autor |
Beitrag |
King_Crasher
      
Beiträge: 37
WIN XP
Delphi 2003
|
Verfasst: Mo 06.11.06 13:37
Hallo zusammen...
Ich hab ein Prob: Und zwar hab ich ein Programm geschrieben welches Daten von von Sportlern aufnimmt. Unteranderem Name , nachname und Klasse. Dann noch drei Datenwerte(Weitsprung, Rennen und Kugelstoßen). Aus diesen Daten wird eine Zahl berechnet und mit den anderen Daten in eine StringGrid geschrieben.
Jetzt möchte ich diese Zahl gerne in der Liste sortieren können.
Könnt ihr mir helfen???
Mfg
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mo 06.11.06 13:49
Moin!
Schau mal hier, vielleicht kommst du damit weiter.  Geht da um Sortieren im Stringgrid.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
King_Crasher 
      
Beiträge: 37
WIN XP
Delphi 2003
|
Verfasst: Mo 13.11.06 13:15
Also da komm ich nicht weiter...
Gibt es nicht einfach ein Befehl der einem weiterhelfen kann???
Oder noch andere Ideen??? hab mir auch gedacht das ich die Zeile und die Spalte des zu sortierenden stringgrids eingeben muss???
Mfg
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mo 13.11.06 13:26
Moin!
King_Crasher hat folgendes geschrieben: | Also da komm ich nicht weiter...
Gibt es nicht einfach ein Befehl der einem weiterhelfen kann??? |
Nein, ein StringGrid musst du schon selbst sortieren...
Wo genau kommst du denn nicht weiter? Hast du schon entsprechenden Code? Dann zeig doch schonmal, was du hast und wo der Fehler ist. Oder hängst du beim Ansatz?
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
King_Crasher 
      
Beiträge: 37
WIN XP
Delphi 2003
|
Verfasst: Mo 13.11.06 13:32
Also das prog an sich steht schon...
Er trägt in die Stringgrid ein und rechnet auch alles...
Ich hab bloß die aufgabe die gesamt punktzahl zu sortieren(natürlcih mit name klasse usw.)
Nur hab ich noch nie etwas sortiert...
Mir fehlt also, wie du schon gesagt hast der Ansatz...
Hab kein plan was ich wie machen muss...
MFG
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mo 13.11.06 13:35
Moin!
In dem Thread oben, auf den der Link zeigt, erläutere ich doch ausführlich BubbleSort. Da schonmal reingesehen (weiter am Ende des Threads)?
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
King_Crasher 
      
Beiträge: 37
WIN XP
Delphi 2003
|
Verfasst: Mo 13.11.06 13:54
das prinzip von bubblesort hab ich...
Aber dann muss ich ja jede Zahl mit jeder Zahl vergleichen, oder???
Dann wird die größte immer eine "Stufe" höher eingetragen???
Aber der rest von dem Thread wir immer undurchsichtiger...
ich denk mal ihr seid mir beide ein paar schritte voraus
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mo 13.11.06 14:04
Moin!
King_Crasher hat folgendes geschrieben: | Aber dann muss ich ja jede Zahl mit jeder Zahl vergleichen, oder???
Dann wird die größte immer eine "Stufe" höher eingetragen??? |
So in etwa ist das, ja.
King_Crasher hat folgendes geschrieben: | Aber der rest von dem Thread wir immer undurchsichtiger...
ich denk mal ihr seid mir beide ein paar schritte voraus |
Konkret die letzten beiden Beiträge sind eigentlich nur interessant. Da wird der BubbleSort entwickelt.
Aber zeig doch einfach mal, was du bisher so an BubbleSort-Versuchen geschafft hast. Vielleicht hilft es ja auch, wenn du überhaupt erstmal irgendwas sortierst, z.B. eine Listbox mit Zahlen oder Namen oder sowas. Wenn du das erfolgreich geschafft hast, dann kannste dich ja immer noch an das StringGrid wagen.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
King_Crasher 
      
Beiträge: 37
WIN XP
Delphi 2003
|
Verfasst: Mo 13.11.06 14:10
hab gerade gesehn das es bei listbox auch den eintrag sort gibt...
Was macht der den???
|
|
King_Crasher 
      
Beiträge: 37
WIN XP
Delphi 2003
|
Verfasst: Mo 13.11.06 14:32
so hab jetzt deinen Post gelesen und mir deinen Code mal vorgenommen...
alles in einer listbox...
der algorithmus hat keine fehler...
wie bekomm ich die ausgabe auf eine listbox??
muss das array bestimmt in einen string umwandeln ne???
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 13.11.06 14:40
Du willst doch jetzt wohl nicht etwa das in eine Listbox und zurück bringen anstatt mal zu versuchen es mit dem StringGrid zu programmieren? In einer ListBox sehen Spalten ziemlich Sch** aus...
Warum versuchst du es nicht einfach mal? Wenn du dann bei konkretem Code nicht weiterkommst, helfen wir dir, keine Frage.
Kleiner Tipp: Programmiere erstmal eine Methode, die dir zwei Einträge des Grids gegeneinander austauscht. Dann kannst du das "einfach" im Sortieralgorithmus verwenden. Das einfach setze ich mal in Anführungsstriche, damit es nicht überheblich klingt, aber einfach ist es eigentlich in der Tat, da der Algorithmus ja da ist.
Fang doch erstmal an, was zu schreiben, wenn du die Methode zum Austauschen zweier Elemente hast, ist es doch wie in einer ListBox...
|
|
King_Crasher 
      
Beiträge: 37
WIN XP
Delphi 2003
|
Verfasst: So 10.12.06 13:36
ok hab hier was. Aber erst mal kurz zur Stringgrid. Sie hat 8 spalten und die 8. soll auch sortiert werden. die erste zeile soll nicht sortiert werden.
Hier der Quelltext:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53:
| var x,j,n,z,y,sportzahl :integer; Temp: TStrings; zahlen: array[-1..1000] of integer;
begin n :=stringgrid1.rowcount-1; begin zahlen[i]:=StrToInt(stringgrid1.Cells[8,i]); end; begin for i:= 1 to n do begin for j:= n downto i do begin if ( zahlen[j-1] < zahlen[j] ) then begin Temp:=TStringList.Create; try Temp.Assign(stringgrid1.Rows[j]); stringgrid1.Rows[j].Assign(stringgrid1.Rows[j-1]); stringgrid1.Rows[j-1].Assign(Temp); finally Temp.Free; end; x:=zahlen[j-1]; zahlen[j-1]:=zahlen[j]; zahlen[j]:=x;
end; end; end; end;
for i:=1 to n do begin stringgrid1.cells[8,i]:=IntToStr(zahlen[i]); end;
z:=1; Y:=1; for i:=1 to filesize(f) do begin stringgrid1.cells[0,y]:=inttostr(z); y:=y+1; Z:=z+1; end; x:=0; for i:=1 to n do begin X:=x+1; end;
end; |
er sagt immer: '' is not a valid interger value.
Moderiert von raziel: Delphi-Tags hinzugefügt
|
|