INECO Forum Overzicht Overzicht Aanmelden Aanmelden Registreer Registreer Profiel Profiel Ledenlijst Ledenlijst Groepen Groepen Zoeken Zoeken

Eenvoudige code om een willekeurige lijst met nummers te genereren.
 
 
 
 
 Geplaatst   Bericht 
Marcel Rothuizen

Marcel Rothuizen
 

Aanmelddatum: 10-11-2000
Woonplaats: Heteren (Gld)
Datum: 20-02-2007 21:24:52    Bericht: Eenvoudige code om een willekeurige lijst met nummers te genereren.

Ik was op zoek naar een manier om een nummerlijst door elkaar te krijgen, zeg maar shuffelen of in random volgorde te zetten.
De uitdaging was om uit een documenten collectie van bijvoorbeeld 200 documenten (vragen) elke keer 20 willekeurige maar unieke documenten te selecteren.

Als oplossing heb ik de volgende code bedacht:

..........
Set Col = View.getAllDocumentsByKey(cat$,True)
Count = Col.Count
For x = 0 To 20 'Max aantal nummers terug
    inr = RandomInteger(Count, 1)
    Set questionDoc = col.GetNthDocument(inr)  
    UNID$ = Cstr(questionDoc.UniversalID)
    Do While Not Isnull(Arraygetindex(nr,  UNID$))
     inr = RandomInteger(Count, 1)
     Set questionDoc = col.GetNthDocument(inr)  
     UNID$ = Cstr(questionDoc.UniversalID)
    Loop
    nr(x) = UNID$
Next

..........
Private Function RandomInteger(HighValue As Long, LowValue As Long) As Long
 Randomize
 RandomInteger = Int((HighValue - Lowvalue + 1) * Rnd + Lowvalue)
End Function
..........

Met deze unieke array van document unid kon ik verdere bewerkingen uitvoeren.
(En voor wie zich afvraagd waarom niet gewoon de nummers in een array: de functie wordt een aantal keren gebruikt waarbij documenten meerdere keren in de collectie kunnen voorkomen, maar slechts een keer gebruikt mogen worden, vandaar.)

 E-mail Website ICQ MSNM Skype Hyves LinkedIn 
Zoek in afgelopen ok
 
   Overzicht / Lotus Notes Ontwikkeling / Lotusscript  
Pagina 1 van 1 

IBM LOTUS NOTES migratie doet u samen met INECO

Powered by Lotus Domino R8.5.3 on Fedora Core 14 Dit  forum is gemaakt door Intranet &  Network Consultancy. © 2011.
Voor vragen of opmerkingen  kunt u contact opnemen met:  .
Deze site is gemaakt met Lotus Notes R8.5.3 en draait op Fedora Core 14.

INECO Support Contract banner