PB avec system de pass a partir d'un fichier texte aidez moi SVP

Résolu
DJsaadi95 Messages postés 21 Date d'inscription lundi 15 décembre 2003 Statut Membre Dernière intervention 9 mai 2005 - 19 sept. 2004 à 17:28
DJsaadi95 Messages postés 21 Date d'inscription lundi 15 décembre 2003 Statut Membre Dernière intervention 9 mai 2005 - 19 sept. 2004 à 21:00
DSL je suis encore un débutant et je ne sais pas pourquoi mais quand j'écris le bon pass dans la text box ben sa affiche le message d'erreur que j'ai mi quand le pass est faux
Voici le code de la form2:

Dim pass As Integer
_______________________________
Private Sub Command2_Click()
pass = FreeFile
Open "C:\Program Files\m.txt" For Input As #pass
If Text1.Text = Input(LOF(1), #pass) Then <-c la kil ya une ereur
Unload Me
Form1.Show
Else
MsgBox "Le mot de passe est incorrect !", vbOKOnly + vbExclamation, "Le mot de passe est incorrect !"
End If
Close #pass
End Sub
____________________________________
Et voici celui de la form1 :

Dim pass As Integer
__________________________
Private Sub Command1_Click()
pass = FreeFile
If Text1.Text <> "" Then
FileCopy "m.txt", "C:\Program Files\m.txt"
Open "C:\Program Files\m.txt" For Output As #pass
Print #pass, Text1.Text
Close #pass
SaveSetting App.Title, "Pass", "Affichage", "1"
Else
MsgBox "Veuillez Ecrire 1 mot de passe !", vbOKOnly + vbExclamation, "Veuillez choisir un mot de passe !"
End If
End Sub
_____________________________
Private Sub Form_Load()
verif = GetSetting(App.Title, "Pass", "Affichage")
If verif = "1" Then
Unload Me
Form2.Show
Else

End If
End Sub
______________________
Voila jespere que vou répondrez vite Merci

14 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
19 sept. 2004 à 19:54
Bon, je reposte puisque ça n'a pas marché.

A la place de :
If Text1.Text = Input(LOF(pass), #pass) Then
met
line input #pass,s 's étant défini en string
If Text1.Text = s Then

Explication, avec Input(LOF(pass), #pass), tu charges tout ton m.txt. Il doit donc ne contenir que la chaine à comparer avec text1.text. S'il y a autre chose en plus (même un simple retour chariot) c foutu. Donc, pour être sûr, utilise line input.

Cordialement, CanisLupus

Tous les glands ne deviennent pas des chênes mais tous les chênes ont été des glands
3
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
19 sept. 2004 à 20:00
supprime la ligne rouge de mon précédent post et modifie ceci :

If Text1.Text = Input(LOF(pass) - 2, #pass) Then

Explication :
Quand tu écris le fichier (Print #pass, Text1.Text), il rajoute un reour chariot (vbCrLf) c'est à dire 2 caractères Chr(10) et Chr(13)
d'où le - 2 pour ne conserver que le mot saisi quand on relit le fichier.
3
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
19 sept. 2004 à 17:54
Bonjour
Normal :
If Text1.Text = Input(LOF(<s>1</s>pass), #pass)
C'est LOF (longueur du fichier n° pass et non n° 1)
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
19 sept. 2004 à 18:00
Essaie avec Input(LOF(pass), #pass)

Cordialement, CanisLupus

Tous les glands ne deviennent pas des chênes mais tous les chênes ont été des glands
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DJsaadi95 Messages postés 21 Date d'inscription lundi 15 décembre 2003 Statut Membre Dernière intervention 9 mai 2005
19 sept. 2004 à 18:04
Euh je vien d'essayer mais sa ne marche toujours pas c'est encore pareil
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
19 sept. 2004 à 18:12
C'est quoi l'erreur qui s'affiche ?

Cordialement, CanisLupus

Tous les glands ne deviennent pas des chênes mais tous les chênes ont été des glands
0
DJsaadi95 Messages postés 21 Date d'inscription lundi 15 décembre 2003 Statut Membre Dernière intervention 9 mai 2005
19 sept. 2004 à 19:27
Ben ya toujours ma msgbox qui dit que le pass est faux
0
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
19 sept. 2004 à 19:34
tu es en mode création ,essaie ceci :

Open "C:\Program Files\m.txt" For Input As #pass
Debug.Print "*" & Text1.Text & "*", "*" & Input(LOF(pass), #pass) & "*"
If Text1.Text = Input(LOF(pass), #pass) Then

Il t'affichera dans la fenêtre de débogage (en bas de l'écran)
les 2 textes encadrés par des *
Compare ces 2 textes et vérifie qu'ils sont identiques.
0
DJsaadi95 Messages postés 21 Date d'inscription lundi 15 décembre 2003 Statut Membre Dernière intervention 9 mai 2005
19 sept. 2004 à 19:46
Ben cette foi sa me fais 1 erreur d'éxécution 62
"L'entrée Depasse la Fin du fichier"
et sa me souligne
If Text1.Text = Input(LOF(pass), #pass) Then
sinon ds la fenetre dexecution en bas a dorite ya écrit
*azerty* *azerty
*
0
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
19 sept. 2004 à 19:50
la denière * à la ligne ?
0
DJsaadi95 Messages postés 21 Date d'inscription lundi 15 décembre 2003 Statut Membre Dernière intervention 9 mai 2005
19 sept. 2004 à 19:53
Oui
0
DJsaadi95 Messages postés 21 Date d'inscription lundi 15 décembre 2003 Statut Membre Dernière intervention 9 mai 2005
19 sept. 2004 à 20:01
Maintenant Il me dit
Erreur d'execution 364
"L'objet a été déchargé"
et il me souligne form1.show
0
DJsaadi95 Messages postés 21 Date d'inscription lundi 15 décembre 2003 Statut Membre Dernière intervention 9 mai 2005
19 sept. 2004 à 20:04
Non c Bon !
merci Rene38 de tes réponse rapides et de ton aide et merci a toi aussi CanisLupus
0
DJsaadi95 Messages postés 21 Date d'inscription lundi 15 décembre 2003 Statut Membre Dernière intervention 9 mai 2005
19 sept. 2004 à 21:00
Les 2 réponses sont bonnes :
Celle de Rene38 avec:
If Text1.Text = Input(LOF(pass) - 2, #pass) Then
et celle de Canis Lupus ou il faut remplacer :
If Text1.Text = Input(LOF(pass), #pass) Then
Par
line input #pass,s 's étant défini en string
If Text1.Text = s Then

Merci a vous encore une fois
0
Rejoignez-nous