4 réponses
Bonjour,
Essaye un peu ça (en changeant les caractères)
* MotPasse.PRG - Mot de passe.
* ----------------------------
*
* Ceci est le programme dans lequel je dois rentrer avec un mot de passe.
*
@ 10,10 SAY "Entrez votre mot de passe : " && Pour indiquer où mettre l'affichage de la fonction MOT.
*
MotOk="dupont" && Bon mot de passe qui peut venir d'un fichier.
*
IF Mot(MotOk) && Si le bon retour.
@ 20,10 SAY "Le mot de passe est correct, bienvenue."
ELSE
@ 20,10 SAY "Mot de passe incorrect ! Accès refusé"
WAIT "Appuyez sur une touche pour quitter"
RETURN
ENDIF
*
WAIT "Appuyez sur une touche pour continuer ce programme"
*
* Programme à exécuter.
*
RETURN && Ou QUIT.
*
* --------------------------------------------------------------
*
FUNC MOT(Mot)
*
* MOT = Chaîne de caractère du mot à saisir.
*
LOCAL E:=SAVESCREEN(0,0,MAXROW(),MAXCOL()), ; && Sauvegarde écran.
R:= .F. , ; && Retour mot incorrect
V:="" , ; && Chaîne qui se construit avec les frappes clavier.
C:=0 && Valeur du caratère frappé au clavier.
*
CLEA TYPE && Vide de buffer du clavier pour éviter erreurs.
*
DO WHIL C<>13 && Sortie sur <RETURN>.
C=INKEY()
IF (C>47 .AND. C<91) .OR. (C>96 .AND. C<123) && Liste des caractères acceptés.
V=V+CHR(C) && La chaîne se construit.
@ ROW(), COL() SAY "X"
C=0
ENDI
ENDD
IF V==Mot && Si c'est le bon mot.
R=.T. && C'est vrai.
ENDIF
RETURN R
Bon développement
Essaye un peu ça (en changeant les caractères)
* MotPasse.PRG - Mot de passe.
* ----------------------------
*
* Ceci est le programme dans lequel je dois rentrer avec un mot de passe.
*
@ 10,10 SAY "Entrez votre mot de passe : " && Pour indiquer où mettre l'affichage de la fonction MOT.
*
MotOk="dupont" && Bon mot de passe qui peut venir d'un fichier.
*
IF Mot(MotOk) && Si le bon retour.
@ 20,10 SAY "Le mot de passe est correct, bienvenue."
ELSE
@ 20,10 SAY "Mot de passe incorrect ! Accès refusé"
WAIT "Appuyez sur une touche pour quitter"
RETURN
ENDIF
*
WAIT "Appuyez sur une touche pour continuer ce programme"
*
* Programme à exécuter.
*
RETURN && Ou QUIT.
*
* --------------------------------------------------------------
*
FUNC MOT(Mot)
*
* MOT = Chaîne de caractère du mot à saisir.
*
LOCAL E:=SAVESCREEN(0,0,MAXROW(),MAXCOL()), ; && Sauvegarde écran.
R:= .F. , ; && Retour mot incorrect
V:="" , ; && Chaîne qui se construit avec les frappes clavier.
C:=0 && Valeur du caratère frappé au clavier.
*
CLEA TYPE && Vide de buffer du clavier pour éviter erreurs.
*
DO WHIL C<>13 && Sortie sur <RETURN>.
C=INKEY()
IF (C>47 .AND. C<91) .OR. (C>96 .AND. C<123) && Liste des caractères acceptés.
V=V+CHR(C) && La chaîne se construit.
@ ROW(), COL() SAY "X"
C=0
ENDI
ENDD
IF V==Mot && Si c'est le bon mot.
R=.T. && C'est vrai.
ENDIF
RETURN R
Bon développement
Bernard,
J'aurais besoin d'un coup de main ; STP c'est toujours AUSSI IMPORTANT!!!!!!
use pass
index on pass to ind_pass
set wrap on
set color to ("w/b","w/r")
set message to 24 center
public fin
test=0
v_nom=space(15)
v_statut=space(10)
v_pass=space(10)
v_id=0
v_rep=space(1)
PUBLIC options[2]
options[1]="OUI"
options[2]="NON"
PUBLIC statut[3]
statut[1]="ADMINISTRATEUR"
statut[2]=" EMPLOYE "
statut[3]=" CHEF "
PUBLIC super[5]
super[1]="Ajout"
super[2]="Pack"
super[3]="Recall "
super[4]="Modifier "
super[5]="Supprimer "
test=0
DO WHILE .T.
go top
blanc()
locate for (id=1)
if (id <> 1)
clear
alert("Il n'y as pas d'ADMINISTRATEUR")
droit={.T.,.F.,.F.}
resu=achoice(9,15,9,27,statut,droit)
@07,5 say "Nom : " get v_nom
@09,5 say "Statut : "
@11,5 say "Pass : " get v_pass
@13,5 say "Sur : " get v_rep PICTURE "Y"
resu1=1
read
if v_rep = "Y"
append blank
replace nom with v_nom
replace stat with statut[resu]
replace pass with v_pass
replace id with resu
alert("Fiche cr‚e")
fin=.F.
else
alert("Fiche non sauv‚e")
blanc()
fin=.F.
end if
else
end if
blanc()
clear
@1,5 say "**********************************"
@2,5 say "** GESTION DE MOT DE PASSE **"
@3,5 say "**********************************"
@5,5 say "Nom : " get v_nom PICTURE "@A"
@7,5 say "Pass : " get v_pass PICTURE "@A"
read
seek(v_nom)
if found()
if v_pass = pass
if id=1
clear
menu to test
test=1
fin=.F.
else
clear
menu to test
test=2
fin=.F.
blanc()
end if
else
clear
alert("Mot de passe incorrect")
fin=.F.
blanc()
end if
else
alert(v_nom+", n'existe pas dans notre base")
fin=.F.
blanc()
end if
do while .T.
DO CASE
Case test = 1
ecran()
menu to principal
DO CASE
case principal = 1
droit={.T.,.T.,.T.,.T.}
resu=achoice(2,3,10,15,super,droit)
fin=.T.
do while fin
if resu = 1
ecran()
blanc()
droit={.T.,.T.,.T.}
resu1=achoice(9,18,9,30,statut,droit)
@07,5 say "Nom : " get v_nom
@09,5 say "Statut : "
@11,5 say "Pass : " get v_pass
@13,5 say "Sur : " get v_rep PICTURE "Y"
read
if v_rep = "Y"
append blank
replace nom with v_nom
replace stat with statut[resu1]
replace pass with v_pass
replace id with resu1
alert("Fiche cr‚e")
fin=.F.
else
alert("Fiche non sauv‚e")
blanc()
fin=.F.
end if
elseif resu=2
ecran()
pack
alert("Fiche supprim‚es d‚finitivement!")
fin = .F.
elseif resu=3
ecran()
recall
alert("Fiche restaur‚es")
fin = .F.
elseif resu=4
fin=.T.
do while fin
ecran()
blanc()
@07,5 say "Nom : " get v_nom
read
seek (v_nom)
if found()
@07,5 say "Nom : " get v_nom
@09,5 say "Statut : " get stat
@11,5 say "Pass : " get v_pass
@13,5 say "Delete? : " get v_rep PICTURE "Y"
read
if v_rep="Y"
replace nom with v_nom
replace stat with statut[resu1]
replace pass with v_pass
replace id with resu1
ecran()
alert("Fiche modifi‚e")
fin=.F.
else
ecran()
alert("Fiche non modifi‚e")
fin=.F.
end if
fin=.F.
else
alert(v_nom+", n'existe pas dans notre base")
ecran()
fin=.F.
end if
end do
else
fin=.T.
do while fin
ecran()
blanc()
@07,5 say "Nom : " get v_nom
read
seek (v_nom)
if found()
@07,5 say "Nom : " get nom
@09,5 say "Statut : " get stat
@11,5 say "Pass : " get pass
@13,5 say "Delete? : " get v_rep PICTURE "Y"
read
if v_rep="Y"
ecran()
delete
alert("Fiche en suppression")
else
alert("Fiche non supprim‚e")
end if
fin=.F.
else
alert(v_nom+", n'existe pas dans notre base")
ecran()
fin=.F.
end if
end if
end do
end do
case principal = 2
ecran()
blanc()
seek (v_nom)
if found()
@07,5 say "Nom : " get nom
@09,5 say "Statut : " get stat
@11,5 say "Pass : " get v_pass
@13,5 say "Delete? : " get v_rep PICTURE "Y"
read
if v_rep="Y"
ecran()
replace nom with v_nom
replace stat with statut[resu1]
replace pass with v_pass
replace id with resu1
alert("Votre fiche est modifi‚e")
else
alert("Votre fiche n'a pas ‚t‚ supprim‚e")
end if
fin=.F.
else
alert(v_nom+", n'existe pas dans notre base")
ecran()
fin=.F.
end if
case principal = 3
go top
acColonnes={"nom","stat","pass","id"}
dbedit(2,1,24,79,acColonnes)
case principal = 4
RETURN
END CASE
case test=2
wait
END CASE
enddo
ENDDO
**************************************************************
function ecran()
clear
@1,02 prompt "SUPER UTILISATEUR"
@1,23 prompt "CHEF/EMPLOYE"
@1,45 prompt "LISTE UTILISATEURS"
@1,65 prompt "RETOUR AU DOS"
return
function blanc()
v_nom=space(15)
v_statut=space(10)
v_pass=space(10)
v_id=0
v_rep=space(1)
return
J'aurais besoin d'un coup de main ; STP c'est toujours AUSSI IMPORTANT!!!!!!
use pass
index on pass to ind_pass
set wrap on
set color to ("w/b","w/r")
set message to 24 center
public fin
test=0
v_nom=space(15)
v_statut=space(10)
v_pass=space(10)
v_id=0
v_rep=space(1)
PUBLIC options[2]
options[1]="OUI"
options[2]="NON"
PUBLIC statut[3]
statut[1]="ADMINISTRATEUR"
statut[2]=" EMPLOYE "
statut[3]=" CHEF "
PUBLIC super[5]
super[1]="Ajout"
super[2]="Pack"
super[3]="Recall "
super[4]="Modifier "
super[5]="Supprimer "
test=0
DO WHILE .T.
go top
blanc()
locate for (id=1)
if (id <> 1)
clear
alert("Il n'y as pas d'ADMINISTRATEUR")
droit={.T.,.F.,.F.}
resu=achoice(9,15,9,27,statut,droit)
@07,5 say "Nom : " get v_nom
@09,5 say "Statut : "
@11,5 say "Pass : " get v_pass
@13,5 say "Sur : " get v_rep PICTURE "Y"
resu1=1
read
if v_rep = "Y"
append blank
replace nom with v_nom
replace stat with statut[resu]
replace pass with v_pass
replace id with resu
alert("Fiche cr‚e")
fin=.F.
else
alert("Fiche non sauv‚e")
blanc()
fin=.F.
end if
else
end if
blanc()
clear
@1,5 say "**********************************"
@2,5 say "** GESTION DE MOT DE PASSE **"
@3,5 say "**********************************"
@5,5 say "Nom : " get v_nom PICTURE "@A"
@7,5 say "Pass : " get v_pass PICTURE "@A"
read
seek(v_nom)
if found()
if v_pass = pass
if id=1
clear
menu to test
test=1
fin=.F.
else
clear
menu to test
test=2
fin=.F.
blanc()
end if
else
clear
alert("Mot de passe incorrect")
fin=.F.
blanc()
end if
else
alert(v_nom+", n'existe pas dans notre base")
fin=.F.
blanc()
end if
do while .T.
DO CASE
Case test = 1
ecran()
menu to principal
DO CASE
case principal = 1
droit={.T.,.T.,.T.,.T.}
resu=achoice(2,3,10,15,super,droit)
fin=.T.
do while fin
if resu = 1
ecran()
blanc()
droit={.T.,.T.,.T.}
resu1=achoice(9,18,9,30,statut,droit)
@07,5 say "Nom : " get v_nom
@09,5 say "Statut : "
@11,5 say "Pass : " get v_pass
@13,5 say "Sur : " get v_rep PICTURE "Y"
read
if v_rep = "Y"
append blank
replace nom with v_nom
replace stat with statut[resu1]
replace pass with v_pass
replace id with resu1
alert("Fiche cr‚e")
fin=.F.
else
alert("Fiche non sauv‚e")
blanc()
fin=.F.
end if
elseif resu=2
ecran()
pack
alert("Fiche supprim‚es d‚finitivement!")
fin = .F.
elseif resu=3
ecran()
recall
alert("Fiche restaur‚es")
fin = .F.
elseif resu=4
fin=.T.
do while fin
ecran()
blanc()
@07,5 say "Nom : " get v_nom
read
seek (v_nom)
if found()
@07,5 say "Nom : " get v_nom
@09,5 say "Statut : " get stat
@11,5 say "Pass : " get v_pass
@13,5 say "Delete? : " get v_rep PICTURE "Y"
read
if v_rep="Y"
replace nom with v_nom
replace stat with statut[resu1]
replace pass with v_pass
replace id with resu1
ecran()
alert("Fiche modifi‚e")
fin=.F.
else
ecran()
alert("Fiche non modifi‚e")
fin=.F.
end if
fin=.F.
else
alert(v_nom+", n'existe pas dans notre base")
ecran()
fin=.F.
end if
end do
else
fin=.T.
do while fin
ecran()
blanc()
@07,5 say "Nom : " get v_nom
read
seek (v_nom)
if found()
@07,5 say "Nom : " get nom
@09,5 say "Statut : " get stat
@11,5 say "Pass : " get pass
@13,5 say "Delete? : " get v_rep PICTURE "Y"
read
if v_rep="Y"
ecran()
delete
alert("Fiche en suppression")
else
alert("Fiche non supprim‚e")
end if
fin=.F.
else
alert(v_nom+", n'existe pas dans notre base")
ecran()
fin=.F.
end if
end if
end do
end do
case principal = 2
ecran()
blanc()
seek (v_nom)
if found()
@07,5 say "Nom : " get nom
@09,5 say "Statut : " get stat
@11,5 say "Pass : " get v_pass
@13,5 say "Delete? : " get v_rep PICTURE "Y"
read
if v_rep="Y"
ecran()
replace nom with v_nom
replace stat with statut[resu1]
replace pass with v_pass
replace id with resu1
alert("Votre fiche est modifi‚e")
else
alert("Votre fiche n'a pas ‚t‚ supprim‚e")
end if
fin=.F.
else
alert(v_nom+", n'existe pas dans notre base")
ecran()
fin=.F.
end if
case principal = 3
go top
acColonnes={"nom","stat","pass","id"}
dbedit(2,1,24,79,acColonnes)
case principal = 4
RETURN
END CASE
case test=2
wait
END CASE
enddo
ENDDO
**************************************************************
function ecran()
clear
@1,02 prompt "SUPER UTILISATEUR"
@1,23 prompt "CHEF/EMPLOYE"
@1,45 prompt "LISTE UTILISATEURS"
@1,65 prompt "RETOUR AU DOS"
return
function blanc()
v_nom=space(15)
v_statut=space(10)
v_pass=space(10)
v_id=0
v_rep=space(1)
return
pour votre mot passe apres compile il a donner les erreurs suivante
problemme de declaration
1 vous avez declarer v_id=0
2 dans locate for (id=1)
il de declaration de id
solution soit que vous declare id=0
est vous laisser lacte for (id=1)
ou vous laisser v_id=0
et vous changer locate for (v_id=1)
s il s agit d un autre problemme contacter moi sur ma boite
faycal.trans@yahoo.fr
problemme de declaration
1 vous avez declarer v_id=0
2 dans locate for (id=1)
il de declaration de id
solution soit que vous declare id=0
est vous laisser lacte for (id=1)
ou vous laisser v_id=0
et vous changer locate for (v_id=1)
s il s agit d un autre problemme contacter moi sur ma boite
faycal.trans@yahoo.fr
utilise cette fonction pour verivier l'exactitude d'un mot de pass
Function PWORD(mp)
local ret_val:=.T.
tone(500,1)
setcursor(1)
Set Color To 15/1, 0/7
dispbox(12,19,14,55,1)
For j:= 1 To 3
@ 13, 20 Say "ENTREZ LE MOT DE PASSE : "
b:= ""
@ 13,45 Say " "
@ 13,45 Say ""
For i:= 45 To 52
a:= 0
a:= InKey(0)
If (a == 13)
Exit
EndIf
b:= b + Chr(a)
@ 13, i Say "."
sound(350,1)
Next
if ( ret_val := (upper(alltrim(b)) == upper(alltrim(mp))) )
b:= "1"
Exit
j:= 4
EndIf
sound(350,1)
InKey(0.1)
sound(300,1)
Next
If (b != "1")
Set Color To 7/0
quit
Else
sound(300,1)
Return ret_val
Endif
(lib funkcy et ct3 )
Function PWORD(mp)
local ret_val:=.T.
tone(500,1)
setcursor(1)
Set Color To 15/1, 0/7
dispbox(12,19,14,55,1)
For j:= 1 To 3
@ 13, 20 Say "ENTREZ LE MOT DE PASSE : "
b:= ""
@ 13,45 Say " "
@ 13,45 Say ""
For i:= 45 To 52
a:= 0
a:= InKey(0)
If (a == 13)
Exit
EndIf
b:= b + Chr(a)
@ 13, i Say "."
sound(350,1)
Next
if ( ret_val := (upper(alltrim(b)) == upper(alltrim(mp))) )
b:= "1"
Exit
j:= 4
EndIf
sound(350,1)
InKey(0.1)
sound(300,1)
Next
If (b != "1")
Set Color To 7/0
quit
Else
sound(300,1)
Return ret_val
Endif
(lib funkcy et ct3 )
tu demand a l'utilisateur de selectionNer ou de saisir son "USER"
c'est a toi de voir et apres tu vas lire le "USER" dans un fichier et recuperer le mot de pass de preference crypter avec les fonctions CRYPT ET DECRYPT dans une variable et pword(variable)
l'utilisateur va saisir le mot de pass s'il est autentifier alors il accede sinon il refait ça 3 fois et apres il quite le programme
bon courage!
c'est a toi de voir et apres tu vas lire le "USER" dans un fichier et recuperer le mot de pass de preference crypter avec les fonctions CRYPT ET DECRYPT dans une variable et pword(variable)
l'utilisateur va saisir le mot de pass s'il est autentifier alors il accede sinon il refait ça 3 fois et apres il quite le programme
bon courage!
Bouh c'est pour dans 1semaine et j'arrive a rien!!!!!!!
Qui a FAIT CE LANGAGE DE PROGRAMMATION DE MERDE!!!!!!
Bouhhhhhhhhhhhh chui découragé! En Plus de 2sem j'ai pas avancé pcq ca va pas!
Qu'est ce qu'il ne va pas dans mon prog ci dessus et comment pourrai je l'ameliorer!???
Je m'en refère à vous!
MErci D'AvAnCe
JEFFREY T
Qui a FAIT CE LANGAGE DE PROGRAMMATION DE MERDE!!!!!!
Bouhhhhhhhhhhhh chui découragé! En Plus de 2sem j'ai pas avancé pcq ca va pas!
Qu'est ce qu'il ne va pas dans mon prog ci dessus et comment pourrai je l'ameliorer!???
Je m'en refère à vous!
MErci D'AvAnCe
JEFFREY T
babords
Messages postés
2
Date d'inscription
jeudi 26 janvier 2006
Statut
Membre
Dernière intervention
31 janvier 2006
31 janv. 2006 à 21:14
31 janv. 2006 à 21:14
Salut Rezak , je recherche des lib pour clipper 5 , je suis un programmeur autodicdacte , je te remerci de ta reponce ...
19 janv. 2006 à 10:56
Toujours en Congé ou tu m'as oublié?
LoL
J'ai vraiment besoin de tes lanternes
JEFFREY T
19 janv. 2006 à 17:32
Non, je ne t'ai pas oublié mais j'ai beaucoup de travail en ce moment.
Regarde un peu, j'ai fais quelques modifications à ton programme, mais je n'ai pas le temps d'approfondir :
http://bernard.mouille.free.fr/jeffrey/mpassw.txt
Comme je te l'ai dit l'autre jour, regarde bien tes boucles pour sortir "EXIT" ou revenir en haut de la boucle "LOOP".
Bon développement
Bernard