GÉNÉRATEUR DE CHAINES PSEUDO-ALÉATOIRES

cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 - 11 déc. 2007 à 22:40
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 13 déc. 2007 à 01:26
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/45020-generateur-de-chaines-pseudo-aleatoires

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
13 déc. 2007 à 01:26
...pour bloquer certains caractères
va demander à un utilisateur de saisir VbNull ^^
et de ne pas spécialement bloquer en taille, bien qu'on verra rarement des "clé" de plus de 10 carac

mais pourquoi pas :
Mid$(sBuffer, iCpt, 1) = chr$(GetRandom(0, 255))
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
12 déc. 2007 à 23:08
Ouai enfin pourquoi utiliser les chaines ?? vous etes barge les loulous ! un tableau de 256 octets puis pif paf pouf tu traites des entiers. pas d'aloc inutile que de l'arithmetique et la... je suis sur qu'il y aura de l'amelioration (quand bien meme faudrait ameliorer quoi que ce soit ;) ).

@+
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
12 déc. 2007 à 15:25
si çà change quand le carac est choisi çà veut dire que tu n'aura jamais de clé > 256...
des suggestions? beh je t'ai dit d'utiliser MID
là çà consomme une tonne de ressources pour rien, c'est très long d'exécution, tu fait un GetCurseurPos alors qu'on connait déjà le X & Y, variables pas typées, pas d'option explicit, et j'en passe!

on va fait mieux qu'une suggestion parce que c'est sans fin là :

Option Explicit
Private Const STR_CHARS As String = "1234567890°-*/+²&é'(-è_çà)=~#{[|`\^@]}AZERTYUIOP¨£QSDFGHJKLM%µ<WXCVBN?.§azertyuiop$qsdfghjklmù<wxcvbn,;:!¤"
Private Const MAX_SIZE As Integer = 1000
Dim sBuffer As String, iCpt As Integer
'
Private Sub Form_Load()
Randomize Timer
iCpt = 0
End Sub
'
Private Sub T01_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If (Button = vbMiddleButton) And (iCpt < MAX_SIZE) Then
iCpt = iCpt + 1 If iCpt 1 Then sBuffer Space(MAX_SIZE)
Mid$(sBuffer, iCpt, 1) = Mid$(STR_CHARS, GetRandom(1, Len(STR_CHARS)), 1)
Me.Caption = "En cours, carac " & iCpt & "/" & MAX_SIZE
T01.Text = sBuffer
If iCpt = MAX_SIZE Then Call MStop
End If
End Sub
Private Sub T01_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbMiddleButton Then Call MStop
End Sub
'
Private Function GetRandom(ByVal iMin As Integer, iMax As Integer) As Integer
GetRandom = Int((iMax * Rnd) + iMin)
End Function
Private Sub MStop()
MsgBox "Terminé"
T01.Text = Replace(sBuffer, " ", vbNullString)
Me.Caption = "La chaîne fait " & Len(T01.Text) & " carac"
iCpt = 0
End Sub
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
12 déc. 2007 à 14:50
hihihi, merci PCPT, j'ai modifié la source donc, et euh... j'ai fait en sorte que ça change même quand le caractère est déjà choisi ! D'autres suggestions?
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
12 déc. 2007 à 12:30
comment çà "idée d'amélioration", c'est justement ce que j'ai indiqué au dessus... ;)
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
12 déc. 2007 à 10:50
Voir ici :
www.google.fr/search?hl=fr&q=pseudo+aleatoire+wiki
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
12 déc. 2007 à 10:44
idée d'amélioration...?
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
12 déc. 2007 à 02:39
surtout de cette manière. là c'est pas du tout portable :(

une chaîne avec la caractères attendu
on formate le résultat space(X)
un compteur
mid$(resultat,compteur,1)=mid$(chaine_voulue,aléatoire,1)

besoin de rien d'autre...
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
11 déc. 2007 à 23:45
Oui malheureusement je crains que les mouvements de la souris soient bien moins aléatoires que ce peut nous fournir la fonction Rand par exemple.
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
11 déc. 2007 à 22:41
ou plutôt de vébiste devrais je dire !
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
11 déc. 2007 à 22:40
Desole de devoir dire ça mais... c'est totallement inutile comme source ! "Une bonne piste a exploité" ouai mais pourquoi faire hihihi.

Enfin bref encore un delire de programmeur :p

@+
Rejoignez-nous