Oppure

Loading
16/05/09 15:36
theprogrammer
Postato originariamente da muteblaster:

si usando randomize funziona , ma non riesco a capire il perche'......


Leggi l'help in linea della funzione Rnd e della Randomize e capirai il perche' ...
aaa
16/05/09 17:47
Louis
Ciao a tutti
leggo da MSDN:
Se Randomize non viene utilizzata, quando la funzione Rnd (senza argomenti) viene chiamata per la prima volta, utilizza come base lo stesso numero. Per le chiamate successive la funzione utilizzerà l'ultimo numero generato.

Poi ripeto, a me sembra funzionare, ...
Non ho ben capito cosa dice theprogrammer al riguardo; infine concordo che il codice può essere ottimizzato.

aaa
16/05/09 18:26
theprogrammer
Postato originariamente da Louis:
Non ho ben capito cosa dice theprogrammer al riguardo;


Per capirci ... senza Randomize, avvia il programma e segnati le prime due password generate. Poi chiudi il programma, avvialo nuovamente e controlla le prime due password ...
aaa
16/05/09 19:14
comunque con randomize funziona.....mi daro' un occhio alle msdn e cerchero' su internet qualche informazione su questa funzione, anche per sapere se puo' creare problemi il suo utilizzo....anche perche' la mia esperienza mi insegna che pria di utilizzare qualcosa e' meglio conoscerla bene......

@theprogrammer:
il codice si puo' migliorare, cosa suggeriresti?....

grazie a tutti per le molteplici risposte che mi avete dato.....
16/05/09 19:47
theprogrammer
Postato originariamente da muteblaster:

@theprogrammer:
il codice si puo' migliorare, cosa suggeriresti?....


Sicuramente il vettore di stringhe e la Split non servono ...

    Randomize
    
    numerilettere = "abcdefghilmnopqrstuvz0123456789"
    
    psw = ""
    For i = 1 To 5
        psw = psw & Mid$(numerilettere, Int(Len(numerilettere) * Rnd() + 1), 1)
    Next i
aaa
17/05/09 6:17
Louis
Per capirci ... senza Randomize, avvia il programma e segnati le prime due password generate. Poi chiudi il programma, avvialo nuovamente e controlla le prime due password ... 


theprogrammer hai ragione !!

:hail:
Ultima modifica effettuata da Louis 17/05/09 6:18
aaa
17/05/09 6:27
non ho trovato nessuna contro indicazione all'uso della funzione randomize, ne su msdn ne su internet .....quindi da quello che intuisco influisce solo sul codice che viene immediatamente dopo......infatti su altro codice sottostante( sempre all'interno dello stesso timer) non influisce, per creare un nick avevo una altra scelta casuale di caratteri ed ho dovuto ripetere randomize......

aggiunta la funzione randomize.....

17/05/09 6:56
Xaratroom
msdn.microsoft.com/it-it/library/….aspx
msdn.microsoft.com/it-it/library/….aspx

Dimmi cosa c'è di poco chiaro riguardo alla funzione rnd o randomize che te lo spiego io.

Nella funzione Randomize([Number]) il valore dell'argomento Number viene utilizzato per inizializzare il generatore di numeri casuali della funzione Rnd, assegnandogli un nuovo valore di inizializzazione. Se Number viene omesso, come nuovo valore di inizializzazione verrà utilizzato il valore restituito dal timer di sistema.

Se la funzione Randomize non viene utilizzata, alla prima chiamata della funzione Rnd priva di argomenti verrà sempre utilizzato lo stesso numero di inizializzazione e in seguito l'ultimo numero generato come numero di inizializzazione.

È pure in italiano

Poi dice anche:
Nota sulla sicurezza:
Poiché l'istruzione Random e la funzione Rnd iniziano con un valore di inizializzazione e generano numeri compresi in un intervallo finito, i risultati possono essere prevedibili per coloro che conoscono l'algoritmo utilizzato per la generazione dei numeri. Di conseguenza, si consiglia di non utilizzare l'istruzione Random e la funzione Rnd per generare numeri casuali da impiegare nella crittografia. Per ulteriori informazioni, vedere RandomNumberGenerator.

Ma in questo caso non credo sia così importante questa nota.
aaa