Einzelnen Beitrag anzeigen

Gelmo

Registriert seit: 14. Sep 2006
Ort: Niederrhein
31 Beiträge
 
Delphi 10.3 Rio
 
#1

Unerwartetes Phänomen bei zwei aufeinander folgenden Schleif

  Alt 23. Feb 2010, 13:27
Hallo!
Folgendes Phänomen, das zu anderen Ergebnissen führt, als ich erreichen möchte, kann ich mir nicht erklären:
nachdem ich Daten in einen Datensatz eingegeben habe, soll dieser neu sortiert werden. Anschließend sollen die sortierten Daten z.B. auf dem Bildschirm neu ausgegeben werden. Ein angedeutetes Beispiel:
Delphi-Quellcode:
var
  Text : Array[0..10] of String;

// Schleife 1
for ui:=1 to 10 do begin
  for uj:=ui+1 to 10 do begin
    if Text[uj]<Text[ui] then begin
      Text[0]:=Text[ui];
      Text[ui]:=Text[uj];
      Text[uj]:=Text[0];
    end;
  end;
end;
// Schleife 2
for ui:=1 to 10 do begin
  Label[ui].Caption:=InttoStr(ui)+'.';
  Label[10+ui]:=Text[ui];
end;
Das Programm ist etwas komplizierter, so wird dort in Schleife 1 dafür gesorgt, dass leere Strings nach hinten sortiert werden, in Schleife 2 werden die entsprechenden Felder mit einem leeren String gefüllt.

Beim Debuggen stellte ich fest, dass in Schleife 2 die Zählreihenfolge umgekehrt ist, so dass ui im ersten Durchlauf nicht - wie vorgegeben - den Wert 1 enthält, sondern 10 und dann heruntergezählt wird. Auch wenn ich in Schleife 2 ui durch eine andere Variable, z.B. Loop1, ersetze, tritt dieses Phänomen auf. Ich komme nicht weiter und finde keine Erklärung.
Hat jemand einen Tipp, wie das passieren kann? Ich möchte noch darauf hinweisen, dass beide Schleifen nicht innerhalb einer weiteren Schleife stehen, sondern in einer eigenen Unit ausgeführt werden.
Vielen Dank für eure Unterstützung.
MfG Gelmo

[edit=Sharky]Delphi-Tags eingefügt. Mfg, Sharky[/edit]
  Mit Zitat antworten Zitat