Autor Beitrag
June84
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Sa 19.06.04 17:11 
Hallo!

Unser Sortierverfahren läuft nicht. Kann uns da jmd helfen? Hier ein Auszug des Quelltextes:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure TForm1.Button1Click(Sender: TObject);
var
  P: array[1..10of integer;
  //N: array[1..10] of string;
  zs: integer;
  i, j: integer;
begin
  for i := 1 to 9 do
    P[i] := StrToInt(stringgrid1.Cells[1, i]);

  for j := 1 to 9 do
    for i := 1 to 8 do
      if P[i] < P[i + 1then
      begin
        zs := P[i];
        P[i] := P[i + 1];
        P[i + 1] := zs;
      end;
end;


Kommen auch mit dem Stringgrid nicht so ganz klar. Sind dankbar für jeden noch so kleinen Vorschlag!!!

Moderiert von user profile iconMotzi: Delphi-Tags hinzugefügt.
Aton
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 125

Windows XP
D7 Enterprise
BeitragVerfasst: Sa 19.06.04 17:34 
Hallo und Grüße nach Stralsund.

Bei mir geht's? Mit welcher Folge läufts denn nicht?!

Oder habt ihr nur vergessen, die Werte wieder in StringGrid zu schreiben?

Gruß Jens.
June84 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Sa 19.06.04 19:30 
Hallo Jens!

Bei dir funktioniert das Programm soweit? Hmm, dann muss unser Fehler ja woanders liegen. Wir haben ein Stringgrid in das PLZ und dazugehörige Städtenamen eingetragen werden sollen. Und in einem 2.Stringgrid sollen die PLZ mit zugehörigen Namen geordnet ausgegeben werden. Vielleicht haben wir das Stringgrid falsch deklariert oder so. Und wie bekommen wir es hin, dass, wenn die PLZen geordnet sind auch die Städte in richtiger Reihenfolge in der Spalte daneben stehen?

Gruß
Rita+Anne
Ich Bins
ontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 197

Win XP Prof
D5 Prof
BeitragVerfasst: Sa 19.06.04 22:17 
Warum genau geht dass Array P von 1 bis 10 wenn später nur 9 Werte zugewiesen werden?

Weiterhin schließe ich mich Aton an, habt ihr die sortierten Werte auch in das Stringgitter geschrieben? Weil mit der Prozedur die ihr da habt werden zwar die Werte eingelesen und sortiert, aber nicht wieder ins Stringgitter geschrieben, d.h. da stehen nach wie vor die unsortierten Werte drin.

_________________
Diese Nachricht wurde mit einer Taschenlampe in das offenliegende Ende eines Glasfaserkabels gemorst!
Aton
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 125

Windows XP
D7 Enterprise
BeitragVerfasst: So 20.06.04 10:45 
Hallo Rita und Anne,

ihr könntet die Orte zusammen mit den PLZ sortieren:

ausblenden volle Höhe Delphi-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:
procedure TForm1.Button1Click(Sender: TObject);
var
  aPLZ: array[1..10of Integer;
  aOrt: array[1..10of string;
  iTemp: Integer;
  sTemp: string;
  i, j: integer;
begin
  for i:= 1 to 9 do
  begin
    aPLZ[i]:= StrToInt(StringGrid1.Cells[1,i]);
    aOrt[i]:= StringGrid1.Cells[2, i];
  end;

  for j:= 1 to 9 do
    for i:= 1 to 8 do
      if aPLZ[i]< aPLZ[i + 1then
      begin
        { erst PLZ }
        iTemp := aPLZ[i];
        aPLZ[i] := aPLZ[i + 1];
        aPLZ[i + 1] := iTemp;
        { dann Ort }
        sTemp:= aOrt[i];
        aOrt[i]:= aOrt[i+ 1];
        aOrt[i+ 1]:= sTemp;
      end;

  for i := 1 to 9 do
  begin
    StringGrid2.Cells[1, i]:= IntToStr(aPLZ[i]);
    StringGrid2.Cells[2, i]:= aOrt[i];
  end;
end;


Zur Zeit können natürlich nur 9 Werte sortiert werden. Wenn ihr es nach oben offen haben wollt, solltet ihr euch dynamische arrays anschauen.

Gruß Jens.
June84 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: So 20.06.04 15:55 
Danke für die Hinweise und Vorschläge. :D Was müssen wir denn machen damit die Plzen und Namen auch sortiert ausgegeben werden und nicht weiterhin unsortiert im Stringgrid stehen?
EUOCheffe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 124



BeitragVerfasst: So 20.06.04 16:59 
Naja, ihr müsst die Namen eben gleich beim Sortieren der PLZ mitverschieben. Ohne den Code jetzt genau zu studieren, glaube ich, dass Aton dies so gemacht hat. Also studiert mal schön seinen Code und die Erleuchtung sollte folgen.
June84 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 22.06.04 13:19 
Danke für den Quelltext Aton. Programm funktioniert endlich. *freu* Es gibt nur noch ein klitze kleines Problem: Wenn man nun die Städte zuerst ordnet, gibt das Programm die Stadt mit dem letzten Buchstaben nicht aus, und schreibt auch nicht die korrekte PLZ daneben.

Bsp.:

Berlin 76356 -> _______ 42 ??????????
Stralsund 18439 Berlin 76356
München 56289 Kiel 28957
Kiel 28957 München 56289

Hat jmd ne Idee woran das liegen könnte???