Einzelnen Beitrag anzeigen

TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#4

Re: "array-Einträge" nicht doppelt auslesen

  Alt 23. Mai 2006, 18:20
Du könntest den entsprechenden String ja wirklich einfach aus dem Array löschen.

Delphi-Quellcode:
procedure DeleteEntry(var pArray: Array of String; pPos: integer); //Prozedur zum Löschen eines beliebigen Eintrags des Arrays
var i, j: integer;
    h: array;
begin
   h := pArray;
   j := 0;
   for i:=low(h) to high(h) do
      begin
         if (i <> pPos) then
             begin
                pArray[j] := h[i];
                inc(j);
             end;
      end;
     setlength(pArray, length(pArray)-1);
end;

function ChoseRandomString: String; //Wählt zufällig einen String aus un löscht ihn
var i:integer;
begin
   i := randomrange(low(StringArray), high(StringArray));
   result := StringArray[i];
   DeleteEntry(StringArray, i);
end;

Hab das mal eben so in die Tastatur gehämmert, bin mir nicht sihcer ob es funktioniert.
Aber vor allem das Prinzip sollte klar werden.
  Mit Zitat antworten Zitat