![]() |
[Erledigt]Problem mit Sortier-Algorithmus
Hallo, folgenden Code habe ich
Delphi-Quellcode:
procedure THauptfenster.sg_sortieren(sortierfeld:String);
var array_min,array_hilfe:TAngaben; i,merken,j:Integer; begin if sortierfeld = 'Niederschlag' then begin for i:=0 to Length(aDaten)-1 do begin array_min := aDaten[i]; merken:=i; for j:=i+1 to Length(aDaten)-1 do begin if aDaten[j].niederschlag < array_min.niederschlag then begin array_min := aDaten[j]; merken:=j; end; end; end; array_hilfe := aDaten[merken]; aDaten[merken] := aDaten[i]; aDaten[i] := array_hilfe; end; end; Ablauf: Daten sollen aus einem Array of Records in einen StringGrid übertragen werden. Das läuft auch alles, aber jetzt möchte ich die Daten sortieren. Wenn der Parameter 'Niederschlag' übergeben wird,an diese Procedure, soll das Array of Record nach .niederschlag sortiert werden. Das Array hat 3 Elemente. Wenn j = 3, wird ein seltsamer Wert, lange Fließkommazahl, an aDaten[j].niederschlag übergeben. Dieser Wert wird dann in mein StringGrid, beim letzten Eintrag, übergeben. Ich verstehe nicht wieso noch ein Wert übergeben wird. Eigentlich sollte doch, wenn j=3, Schluss sein. Kann mir einer sagen, warum das passiert? Liegt der Fehler nicht in dieser Procedure? |
AW: Problem mit Sortier-Algorithmus
Ich steige da nicht ganz durch. Wieso wird nur ein einziges Mal getauscht?
|
AW: Problem mit Sortier-Algorithmus
Ich denke mal die letzten drei Tauschzeilen sind verrutscht und gehören eine Ebene tiefer. (ein END nach oben)
Aber natürlich ist hier der Entwickler Schuld, dass er das nicht selber bemerkte, da er sämtliche Compilerwarnungen ignoriert hat. > i und merken sind da unten nicht initialisiert :zwinker: |
AW: Problem mit Sortier-Algorithmus
Oh mein Gott!!!
So blind -.- Danke, habe das total ausser acht gelassen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz