Ok, hier mein kleiner Sortieralgorithmus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| for p:=1 to 5 do repeat begin tausch:=0; for o:= 0 to stringgrid1.rowcount-2 do if ord((stringgrid1.cells[0,o])[p]) = ord((stringgrid1.cells[0,o+1])[p]) then if ord((stringgrid1.cells[0,o])[p+1]) > ord((stringgrid1.cells[0,o+1])[p+1]) then begin tausch:= tausch+1; for k:= 0 to 4 do temp[k]:=stringgrid1.cells[k,o+1]; for l:= 0 to 4 do stringgrid1.cells[l,o+1]:= stringgrid1.cells[l,o]; for m:= 0 to 4 do stringgrid1.cells[m,o]:=temp[m]; end; end; until tausch=0; |
der funktioniert ganz gut dachte ich, aber nur wenn der Fall nicht eintritt, dass zwar der Buchstabe vor dem zu vergleichendem gleich is, die davor aber nicht mehr! ok, ich blick den Satz selbst net, also ein Beispiel:
ich habe: Garfield und Hacker (is mir so beim rumprobieren eingefallen...)
Normal wäre ja, dass Garfield vorne steht, aber er zieht Hacker nach vorne, da er nur überprüft, ob der 2. Buchstabe gleich ist, den ersten aber ausser Acht lässt. Aber mir fällt kein weg ein, wie ich das Prob beheben kann... Weiß einer Rat?