Forum Liberty Basic France

Le 24/03/2014 à 18h20

Libertynaute Avancé

Groupe: Membre

Inscrit le: 08/06/2012
Messages: 270
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 :

' 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 :D

Web    
Le 24/03/2014 à 20h47

Libertynaute Actif

Groupe: Membre

Inscrit le: 04/12/2012
Messages: 139
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 :
    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.
____________________
The Basic and I

Mail Web    
Le 24/03/2014 à 20h53

Libertynaute Actif

Groupe: Membre

Inscrit le: 04/12/2012
Messages: 139
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.
____________________
The Basic and I

Mail Web    
Le 24/03/2014 à 20h56

Administrateur

Groupe: Administrateur

Inscrit le: 24/09/2010
Messages: 238
Voilà qui devrait arranger les choses pour ton tableau :)

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
____________________

MSN Yahoo Web    
Le 24/03/2014 à 20h59

Administrateur

Groupe: Administrateur

Inscrit le: 24/09/2010
Messages: 238
et pour ton second problème

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
 
 
____________________

MSN Yahoo Web    
Le 24/03/2014 à 21h11

Administrateur

Groupe: Administrateur

Inscrit le: 24/09/2010
Messages: 238
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 :
 
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
 
____________________

MSN Yahoo Web    
Le 24/03/2014 à 21h19

Libertynaute Actif

Groupe: Membre

Inscrit le: 04/12/2012
Messages: 139
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 :
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.
____________________
The Basic and I

Mail Web    
Le 24/03/2014 à 21h26

Administrateur

Groupe: Administrateur

Inscrit le: 24/09/2010
Messages: 238
Voilà j'ai modifier le programme à ma sauce, dis moi ce que tu en penses :)

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
 
 
____________________

MSN Yahoo Web    
Le 25/03/2014 à 09h52

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
Salut alex,
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

   
Le 25/03/2014 à 13h02

Libertynaute Actif

Groupe: Membre

Inscrit le: 04/12/2012
Messages: 139
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.
____________________
The Basic and I

Mail Web    
Le 25/03/2014 à 18h50

Libertynaute Avancé

Groupe: Membre

Inscrit le: 08/06/2012
Messages: 270
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 :D

Web    

 |  |

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