Thema: Delphi Wert aus Array entfernen

Einzelnen Beitrag anzeigen

Walgo

Registriert seit: 1. Mär 2008
5 Beiträge
 
#13

Re: Wert aus Array entfernen

  Alt 2. Mär 2008, 15:45
Also ich bin schonmal einen Schritt weitergekommen.
Ich wollte aber nochmal bei Arrays bleiben - zumindest für heute ^^

marabu - das Problem bei deiner Prozedur ist, dass die Funktion
"RandomFrom()" nur einen Array annimt, etwas wie "(Gesamt - i)" funktioniert leider nicht
So sieht mein "Werte"-Array aus:
Code:
 SetLength(werte,49);
 for i:= 0  to 48 do werte[i]:=i+1;
Nach meiner Vorstellung hat er jetzt die Indexzahlen 0-48, denen die Werte 1-49 zugeteilt sind.

Code:
for i := 0 to 5 do

        begin
            zw:= RandomFrom (werte);          //"berechnen" zuer Zufallszahl
            zufall[i]:= zw;                   //speichern in zw..
            werte[zw-1]:=length(werte);       //ersetzten der gezogenen Zahl (Bsp. 35 -> ich
                                                 brauche den Index 34) durch die letzte Zahl, also
                                                 falls es die erste Zahl ist - 49 (Index 48)
            SetLength(werte,length(werte)-1); // Löschen der letzten Zahl, damit diese nicht 2mal
                                                  im Array vorkommt
        end;
Blöderweise produziert er immernoch einen Fehler, jedoch sehr merkwürdig, beim ersten Starten funktioniert es IMMER, erst, wenn ich mehrere Male die Geschichte laufen lasse produziert er irgentwann eine Exception!!

Ich hab echt keinen Plan warum der immer meckert, vor allem, warum es manchmal klappt und manchmal nicht, kennt das jemand von euch?

grüße walgo
  Mit Zitat antworten Zitat