Einzelnen Beitrag anzeigen

Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#7

Re: Dynamische Arrays verhackstückt :(

  Alt 7. Feb 2005, 11:28
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;
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat