Forum Liberty Basic France
• Index
Bonjour à tous, je travail sur mon générateur de mot de passe, et j'aurais besoin de quelques solutions à mes divers problèmes :
Code :
Comme on peut le voir, pour rentrer toutes les valeurs dans le tableau, il n'existe pas une méthode plus simple ? (j'ai vu passer une fonction explode sur le forum, mais le système m'échappe encore)
Et aussi est-il possible que dans ma boucle for ... next j'affiche les caractères générés automatiquement à la suite (comme une chaine de caractère) au lieu qu'il y est un retour à la ligne à chaques lettres ? (car mon alternative est pour le moins ... pas très intelligente)
A bientôt
Edité par alex877 Le 24/03/2014 à 18h21
Code :
' On initialise les tableaux
dim tableau$(35)
dim tabl$(7)
'Il faudrait trouver une autre alternative, tel qu'un explode en php
tableau$(0) = "a"
tableau$(1) = "b"
tableau$(2) = "c"
tableau$(3) = "d"
tableau$(4) = "e"
tableau$(5) = "f"
tableau$(6) = "g"
tableau$(7) = "h"
tableau$(8) = "i"
tableau$(9) = "j"
tableau$(10) = "k"
tableau$(11) = "l"
tableau$(12) = "m"
tableau$(13) = "n"
tableau$(14) = "o"
tableau$(15) = "p"
tableau$(16) = "q"
tableau$(17) = "r"
tableau$(18) = "s"
tableau$(19) = "t"
tableau$(20) = "u"
tableau$(21) = "v"
tableau$(22) = "w"
tableau$(23) = "x"
tableau$(24) = "y"
tableau$(25) = "z"
tableau$(26) = "0"
tableau$(27) = "1"
tableau$(28) = "2"
tableau$(29) = "3"
tableau$(30) = "4"
tableau$(31) = "5"
tableau$(32) = "6"
tableau$(33) = "7"
tableau$(34) = "8"
tableau$(35) = "9"
for i=0 to 7 'Pour générer un mdp a 8 caractères
gen = rand(0,35) 'On genere un nombre aléatoire
tabl$(i) = tableau$(gen) 'Et on enregistre le tout dans un autre tableau, pour pouvoir l'afficher en ligne (penser à trouver une autre solution)
next
print "Votre mot de passe : "
print
print tabl$(0);tabl$(1);tabl$(2);tabl$(3);tabl$(4);tabl$(5);tabl$(6);tabl$(7)
print
input "Appuyer sur entrer pour quitter";retour
end
function rand(min,max)
rand = int(rnd(1)*(max-min+1))+min
end function
Comme on peut le voir, pour rentrer toutes les valeurs dans le tableau, il n'existe pas une méthode plus simple ? (j'ai vu passer une fonction explode sur le forum, mais le système m'échappe encore)
Et aussi est-il possible que dans ma boucle for ... next j'affiche les caractères générés automatiquement à la suite (comme une chaine de caractère) au lieu qu'il y est un retour à la ligne à chaques lettres ? (car mon alternative est pour le moins ... pas très intelligente)
A bientôt

Edité par alex877 Le 24/03/2014 à 18h21
____________________
Si le meilleurs langage de programmation existe, alors le Just Basic est loin devant.
Ne me tappez pas dessus ! Je débute
Si le meilleurs langage de programmation existe, alors le Just Basic est loin devant.
Ne me tappez pas dessus ! Je débute

Web
Bonsoir Alex,
C'est encore moi, avec une solution que j'ai testée !
Bon, d'accord, en majuscule (COBOL oblige !), mais à toi de trouver les valeurs ...
Code BBCODE :
Tiré d'un de mes programmes de crypto.
Ca remplit la table SA$
juste vérifier la valeur de "64" dans
Code BBCODE :
Mais en majuscule, ça fonctionne très bien !
Si ça peut t 'être utile, j'en serai ravi !
H.
C'est encore moi, avec une solution que j'ai testée !
Bon, d'accord, en majuscule (COBOL oblige !), mais à toi de trouver les valeurs ...
Code BBCODE :
DIM SA$(26) FOR I = 1 TO 26 SA$ = CHR$(64 + I) NEXT I
Tiré d'un de mes programmes de crypto.
Ca remplit la table SA$
juste vérifier la valeur de "64" dans
Code BBCODE :
SA$ = CHR$(64 + I)
Mais en majuscule, ça fonctionne très bien !
Si ça peut t 'être utile, j'en serai ravi !
H.
P.S. Pour le fond de la table, après 26, juste changer la valeur 64 dans CHR$(64 + I)
A toi de vérifier dans une quelconque table ASCII!
H.
A toi de vérifier dans une quelconque table ASCII!
H.
Voilà qui devrait arranger les choses pour ton tableau 
Code VB :
Edit : grilled

Code VB :
'On rentre les lettres minuscules de a à z for valS=0 to 25 step 1 tableau$(valS) = chr$(97+valS) next valS 'On rentre les chiffre de 1 à 9 for valN=0 to 9 step 1 tableau$(valN+ValS+1) = str$(valS) next valN
Edit : grilled
et pour ton second problème
Code VB :
Code VB :
for i=0 to 7 'Pour générer un mdp a 8 caractères gen = rand(0,35) 'On genere un nombre aléatoire mdp$= mdp$ + tableau$(gen) 'Et on enregistre le tout dans un autre tableau, pour pouvoir l'afficher en ligne (penser à trouver une autre solution) next print "Votre mot de passe : " print print mdp$ print input "Appuyer sur entrer pour quitter";retour
et la fonction que tu cherchais est celle-ci (tu peux en trouver d'autre dans mon post "Pack de fonctions textes") dans la catégorie Subs & Snippets !
Code VB :
Code VB :
string$=STA$("abcdefghijklnopqrstuvwxyz123456789") while empty(STAi$(STA))=false print STAi$(STA) STA=STA+1 wend function STA$(string$) GLOBAL STA lenS=len(string$) let STA=0 redim STAi$(lenS) while (i<>lenS) STAi$(i)=left$(right$(string$,lenS-i),1) i=i+1 wend STA$=STAi$ end function function empty(string$) if (string$="NULL") or (string$="")then empty=1 else empty=0 end if end function
Bon, j'ai eu la flemme de chercher les valeurs de 64 dans la table ASCII, mais ...
Pour les chiffres de 1 à 0, la base, c'est 47
et pour les minuscules, c'est 96.
Voir ces quelques lignes de code :
Code BBCODE :
Et en plus, tu as un fichier CHAR.txt avec toutes les correspondanx^ces ASCII => caractères !
En prime !
Bonne soirée.
H.
Pour les chiffres de 1 à 0, la base, c'est 47
et pour les minuscules, c'est 96.
Voir ces quelques lignes de code :
Code BBCODE :
OPEN "CHAR.txt" FOR OUTPUT AS #10 FOR I = 1 TO 255 PRINT #10, STR$(I); " "; CHR$(I) NEXT I CLOSE #10 FOR I = 1 TO 10 PRINT CHR$(47 + I) NEXT I FOR I = 1 TO 26 PRINT CHR$(96 + 1) NEXT I END
Et en plus, tu as un fichier CHAR.txt avec toutes les correspondanx^ces ASCII => caractères !
En prime !
Bonne soirée.
H.
Voilà j'ai modifier le programme à ma sauce, dis moi ce que tu en penses 
Code VB :

Code VB :
'on créer la variable string qui contient tous les caractères que l'on souhaite voir figurer dans le mot de passe et on mélange les caractères aléatoirement grâce à la fonction shuffle stringMDP$="aàbcdeéèêfghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,;:!%*$£&" lenStringMDP=len(stringMDP$) modStringMDP$=STA$(strShuffle$(stringMDP$, 0)) longueur=10 for i=0 to longueur 'Pour générer un mdp a 8 caractères [regen] gen = rand(0,lenStringMDP) 'On genere un nombre aléatoire if empty(STAi$(gen))=false then mdp$= mdp$ + STAi$(gen) else goto [regen] end if next print "Votre mot de passe : ";chr$(13);chr$(13);mdp$;chr$(13) input "Appuyer sur entrer pour quitter";retour end function rand(min,max) rand = int(rnd(1)*(max-min+1))+min end function function STA$(string$) GLOBAL STA lenS=len(string$) let STA=0 redim STAi$(lenS) while (i<>lenS) STAi$(i)=left$(right$(string$,lenS-i),1) i=i+1 wend STA$=STAi$ end function function empty(string$) if (string$="NULL") or (string$="")then empty=1 else empty=0 end if end function function strShuffle$(string$, val) STA$=STA$(string$) lenS=len(string$) while (p<>lenS) rand=rand(0, lenS) if empty(STAi$(rand)) then p=p else if val=1 then chaine$=trim$(chaine$;STAi$(rand)) else chaine$=chaine$;STAi$(rand) end if STAi$(rand)="" p=p+1 end if wend strShuffle$=chaine$ end function
Salut alex,
Pour charger les tableaux, tu a aussi ça:
Code VB :
Pour charger les tableaux, tu a aussi ça:
Code VB :
le_contenu$="a b c d e f g h i" '...ext dim tableau$(len (le_contenu$)+1) for x = 1 to len (le_contenu$) tableau$(x)= word$(le_contenu$,x) next x
____________________
Roro
Roro
Bon, d'accord, j'étais tout en bas de la pile ...
Et ma paresse congénitale m'a freiné !
Donc merci à les ceusses qui ont piochés un peu plus profondément que moi !
H.
Et ma paresse congénitale m'a freiné !
Donc merci à les ceusses qui ont piochés un peu plus profondément que moi !
H.
Merci pour toutes vos réponses (ouah la réactivité a été pour le moins spectaculaire xD ), je testerais ça dès que je pourrais, et je vous ferais parvenir les retours

____________________
Si le meilleurs langage de programmation existe, alors le Just Basic est loin devant.
Ne me tappez pas dessus ! Je débute
Si le meilleurs langage de programmation existe, alors le Just Basic est loin devant.
Ne me tappez pas dessus ! Je débute

Web
• Index
1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie