ok, es funzt jetzt....
nun die nächste procedure und das nächste problem
diese procedure soll eigentlich sortieren, ob das sortieren funzt is aber (noch) nicht das thema
und wieder kommt ganz am ende eine
AV
Delphi-Quellcode:
procedure Sort(var Values: TIntDynArray; Len: Integer);
var MaxVal, i, j, index:Integer;
Temp:TIntDynArray;
begin
MaxVal:=0;
//MaxValue
for i:=0 to Len do if MaxVal<Values[i] then MaxVal:=Values[i];
//Temp-Array
SetLength(Temp,MaxVal);
//Temp nullen
for i:=0 to MaxVal do Temp[i]:=0;
//Werte holen
for i:=0 to Len do Temp[Values[i]]:=Temp[Values[i]]+1;
index:=0;
//Werte schreiben
for i:=1 to MaxVal do //für alle Zahlen
for j:=1 to Temp[i] do
begin
Values[index]:=i; //schreiben
inc(index); //index erhöhen
end;
SetLength(Temp,0); //Temp leeren
end;
aufruf:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var temp:TIntDynArray;
i:integer;
begin
ListBox2.Clear;
SetLength(temp,ListBox1.Count-1);
for i:=0 to ListBox1.Count-1 do
temp[i]:=strtoint(ListBox1.Items[i]);
sort(temp,length(temp)-1);
for i:=0 to ListBox1.Count-1 do
ListBox2.Items.Add(inttostr(temp[i]));
end;