Page 1 sur 1

[R] Comment envoyer une chaine de caractère aléatoire ?

Posté : sam. 22 mars 2008 18:30
par mehdi
bonjour à tous.
voila ma question est simple, comme indiquée dans le nom du topic, comment puis-je envoyer une chaine de caractères aléatoire.
je m'explique, je voudrais réaliser la meme chose que cela mais avec des lettres :

$num = Random ( 1, 9999999999, 1 )
send ( $num )

existe-t-il une méthode ?
Merci

Re: [..] comment envoyer une chaine de caractère aléatoire ?

Posté : sam. 22 mars 2008 20:00
par tolf
medhi a écrit :existe-t-il une méthode ?
Oui :

Si tu as 26 lettres et que ta chaîne fait 10 caractères, tu fais 10 fois :

Code : Tout sélectionner

Random ( 1, 26, 1 )
et a chaque fois tu transforme la valeur obtenue par le caractère qui lui est associé (1 = a, 2 = b, etc...). Il suffit de coller les lettres une à une dans une chaîne au fur et à mesure que tu les obtiens, et à la fin, tu as ta chaîne aléatoire.

Re: [..] comment envoyer une chaine de caractère aléatoire ?

Posté : sam. 22 mars 2008 20:15
par mehdi
en effet je n'y avait pas pensé :D
je pensais trouver une fonction toute faite mais apparament non, je vais essayer ca
merci

Re: [R] Comment envoyer une chaine de caractère aléatoire ?

Posté : dim. 23 mars 2008 18:54
par moutelous
Bonjour,

Vous pouvez utiliser la même fonction en combinant les codes ASCII et la fonction Chr

(Voir l'aide de Random)

Pour des minuscules :

Code : Tout sélectionner

Chr(Random(Asc("a"), Asc("z"), 1)
Pour des majuscules :

Code : Tout sélectionner

Chr(Random(Asc("A"), Asc("Z"), 1)
A+

Re: [R] Comment envoyer une chaine de caractère aléatoire ?

Posté : dim. 30 mars 2008 15:59
par arrkhan
j 'ai commencé une fonction en modifiant _ArrayCreate pour qu'il accepte suffisament de $Variables mais je bloque sur la boucle for...next, je m en sort pas, pourtant je sens que je tiens le bon bout, je vous post le bout de code, si les pros se sentent de le terminer ^^

Code : Tout sélectionner

Func _ArrayCreate2($v_0, $v_1 = 0, $v_2 = 0, $v_3 = 0, $v_4 = 0, $v_5 = 0, $v_6 = 0, $v_7 = 0, $v_8 = 0, $v_9 = 0, $v_10 = 0, $v_11 = 0, $v_12 = 0, $v_13 = 0, $v_14 = 0, $v_15 = 0, $v_16 = 0, $v_17 = 0, $v_18 = 0, $v_19 = 0, $v_20 = 0, $v_21 = 0, $v_22 = 0, $v_23 = 0, $v_24 = 0, $v_25 = 0, $v_26 = 0)
    Local $av_Array[27] = [$v_0, $v_1, $v_2, $v_3, $v_4, $v_5, $v_6, $v_7, $v_8, $v_9, $v_10, $v_11, $v_12, $v_13, $v_14, $v_15, $v_16, $v_17, $v_18, $v_19, $v_20, $v_21, $v_22, $v_23, $v_24, $v_25, $v_26]
    ReDim $av_Array[@NumParams]
    Return $av_Array
EndFunc   ;==>_ArrayCreate2
$Output = ""
Func _Randabc($longueurmot)
    $Randabc = _ArrayCreate2(26, "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z")
    For $i = 1 To $longueurmot
        $Output = $Output & $Randabc[Random(1, 26, 1)]
        Return $Output
    Next
    
EndFunc   ;==>_Randabc
MsgBox(0, "", "test de randomisation de nom de fichier : " & _Randabc(5))

Re: [R] Comment envoyer une chaine de caractère aléatoire ?

Posté : dim. 30 mars 2008 16:45
par ani
a vu d'oeil ....sans être pro :)

faut juste indiquer le return $output en dehors de la boucle for..next ;)
pas mal ;)

tu pouvais passer par un simple tableau,sans créer le arraycreate
en une fonction (j'avais crée quelque chose de s'emblable y a longtemp ^^)

Code : Tout sélectionner

Func _Randabc($longueurmot)
Local $Randabc = stringsplit("abcdefghijklmnopqrstuvwxyz","")
For $i = 1 To $longueurmot
    $Output = $Output & $Randabc[Random(1, 26, 1)]
Next
Return $Output
EndFunc   ;==>_Randabc

MsgBox(0, "", "test de randomisation de nom de fichier : " & _Randabc(5))
et si tu désire faire un mélange entre les minuscule et majuscule ()

Code : Tout sélectionner

Func _Randabc($longueurmot)
Local $Output = ""
Local $Randabc = stringsplit("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ","")
For $i = 1 To $longueurmot
        $Output &= $Randabc[Random(1, 52, 1)]
Next
Return $Output
EndFunc   ;==>_Randabc

MsgBox(0, "", "test de randomisation de nom de fichier : " & _Randabc(5))
mais il doit exister une alternative, plus simple..

Re: [R] Comment envoyer une chaine de caractère aléatoire ?

Posté : dim. 30 mars 2008 17:18
par arrkhan
merci ani ^^
je savais bien que j en etais pas loin....

P.S.: je suis vraiment trop un boulet, marre de faire Ctrl+s dès que je me corrige sur un post =Þ

Re: [R] Comment envoyer une chaine de caractère aléatoire ?

Posté : dim. 30 mars 2008 17:24
par ani
çà arrive ;)
mais tu n'es pas boulet pour autant ;)
que fait le raccourci ctrl+s ?

Re: [R] Comment envoyer une chaine de caractère aléatoire ?

Posté : dim. 30 mars 2008 17:26
par arrkhan
Ctrl+s c'est le raccourci clavier pour la sauvegarde dans quasi tout les logiciel, c'est un reflex que j'ai pris il y a bien longtemps, je fais le raccourci au moins toute les 10 secondes ^^