Gestion de fichier

Signaler
Messages postés
12
Date d'inscription
jeudi 22 janvier 2015
Statut
Membre
Dernière intervention
22 juillet 2015
-
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour mes amis
svp j'ai besoin de votre aide
voici mon code !

Private Sub cmd1_Click()

i = 1
Dim x As Integer

x = Len(Enreg)
Timer1.Enabled = True

joueur.pseudo = txt1.Text
joueur.passe = Me.txt2.Text
joueur.niveau = Me.Combo1.ListIndex
joueur.score = 0
Open "C:\Users\Chayma\Desktop\projetvb\inscription.txt" For Random As #1 Len = Len(joueur)
Seek 1, i
Put #1, , joueur
    
i = i + 1

Close #1

End Sub


l'erreur est au niveay de l'instruction : Put #1, , joueur

svppppp aidez moiiii
Cordialement

14 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
Bonjour,
où et comment as-tu défini la variable de type personnalisé joueur ?

Et après avoir répondu à cette question (pas avant) ===>>
1) que cherches-tu à faire exactement (description précise)
2) à quoi te sert la valeur de x ? (présente mais non utilisée)
3) à quoi te sert d'incrémenter i puisque tu le remets à 1 à chaque click ?

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Messages postés
12
Date d'inscription
jeudi 22 janvier 2015
Statut
Membre
Dernière intervention
22 juillet 2015

dans le module1:
Public Type Enreg

pseudo As String * 10
passe As String * 6
niveau As String
score As Integer

End Type

Dim joueur As Enreg

1- je suis entrain de programmer un jeu et chui dans le stade de l'inscription ( je dois utiliser les fichiers et non pas une base de données )
2-j ai enlevé x , c'était un essai parmi mes essais je l'ai oublié
3- concernant i j'ai corrigé ma faute je l'ai initialisé dans la partie générale de déclarations mais ca n'a pas marché
:(
Messages postés
12
Date d'inscription
jeudi 22 janvier 2015
Statut
Membre
Dernière intervention
22 juillet 2015

Private Sub Form_Load()
i = 1
End Sub
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
Tu n'as pas répondu avec précision à mon point 1.
Ce n'est pas le fait que tu programmes un jeu, qui m'intéresse, ni celui que cette partie-là concerne les inscriptions !
Ce qui m'intéresse c'est la nature exacte, précise et détaillée de ce que tu veux faire dans ton fichier texte (et ce : quel qu'en soit l'objet, qui ne regarde que toi) !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Messages postés
12
Date d'inscription
jeudi 22 janvier 2015
Statut
Membre
Dernière intervention
22 juillet 2015

Bonsoir
le programme à marché mais dans le fichier je ne trouve pas le pseudo et le mot de passe
je trouve une écriture chinoise !!!!!!!!
:(
aidez moi svp
Messages postés
12
Date d'inscription
jeudi 22 janvier 2015
Statut
Membre
Dernière intervention
22 juillet 2015

je veux qu'a chaque fois qu'on fait une inscription , écrire le nouveau pseudo et le nouveau mot de passe dans un fichier nommé " inscription" si le pseudo n'existe pas encore dans l'un des enregistrements dans ce mm fichier
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
Pas vraiment clair !
1) Est-ce que tu dois ajouter un joueur à ce fichier uniquement durant une seule session ou dois-tu pouvoir le faire également entre deux sessions ? (en te rappelant qu'entre deux sessions, la valeur de la variable i est perdue).
2) évite les expressions "ça ne marche pas" ou "ça a marché". Elles ne veulent dire quelque-chose que pour toi
3)
mais dans le fichier je ne trouve pas le pseudo et le mot de passe
je trouve une écriture chinoise !!!!!!!

ne veut pas dire grand-chose non plus !
a) comment le sais-tu ? Comment as-tu lu ces enregistrements (par quel moyen ?)
b) as-tu chiffré ("crypté") ces deux données ou sont-elles en clair ?

4) évite également dorénavant, s'il te plait, de nous présenter un code non nettoyé.
Messages postés
12
Date d'inscription
jeudi 22 janvier 2015
Statut
Membre
Dernière intervention
22 juillet 2015

chui pas expert !!! chui débutante si nn jné r1 a faire ici :o je demande de l'aide chui pas dans un tribunal
pk vous m parlez comme si chui nonchalante ??
j'ai un projet VB6 a terminer ! ma soutenance sera dans 2 semaines ... chui stressée !!!!!!

évite ca , dorénavant évite de faire .. !!!
j'actualise la page 100 fois par minute en attendant votre réponse !!
c'est bizarre !!

est ce que à ce point ma situation est grave !! chui pas dans un devoir chui entrain d'apprendre mon probleme c que dans le fichier j trouve une écriture chinoise au lieu du pseudo et du mot de passe !!

jme demande si j'serai banné après ce commentaire
mais ... uh
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
Expert ou pas :
Si tu veux de l'aide ===>> sois au moins capable de répondre à ce à quoi il t'est demandé de répondre !
Et arrête avec tes "chui". Je ne veux même pas les comprendre
C'est TA soutenance ? Ah !*

J'attends encore (jusqu'à quand ? On en est au 9ème message !) une réponse à mes questions 1) , 3)a et 3)b) !!!

PS : et lorsque l'on est pas "expert", on ouvre au moins son aide VB6 sur le mot Seek, avant de l'utiliser (même les "experts" ouvrent régulièrement cette aide VB6). Si tu l'avais fait, tu te serais rendu compte de ce qu'en mode Random, cette fonction retourne un enregistrement (index) , hein ... et rien d'autre.
Alors (et surtout s'il s'agit de "ta soutenance") : reviens ici sérieusement (en faisant au moins des efforts réels) et tu auras mon aide. Si tu n'y es pas disposé ===>> le "tribunal" (comme tu dis) va t'abandonner pile là et tu te retrouveras devant l'autre "tribunal" (celui qui notera TA soutenance)..




________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
47
Salut

Essaie sans le Seek 1, i

Open "C:\Users\Chayma\Desktop\projetvb\inscription.txt" For Random As #1 Len = Len(joueur)
Put #1, , joueur

aussi lance ton prog avec le debugger ou mais un point d'arrêt
à la
ligne Put #1, , joueur


chaque erreur à son numéro

ps: chui pas expert !!! chui débutante si nn jné r1 a faire ici :o je demande de l'aide chui pas dans un tribunal

c'est du sms ++ ou sms.net ?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
Bonjour, cs_ShayW,
Cela ne répondra pas totalement à ses préoccupations (ni le contrôle préalable, ni les "chinoiseries"). Il est vrai qu'il faut "fouiller" dans ses réponses (celles qui lui ont été arrachées au forceps) pour le découvrir. Et il y a encore des interrogations majeures.
Ce que tu lui proposes "écrasera" tout simplement le premier enregistrement

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
47
Bonjour Ucfoutu

si l'erreur est à Put #1, , joueur
donc le problème est avec joueur
cette ligne
joueur.niveau = Me.Combo1.ListIndex

Me.Combo1.ListIndex rend un string ?
parceque
niveau As String

me semble bizarre
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
Ce n'est qu'une des erreurs parmi d'autres (elles ne manquent pas), Shayw.
Mais même cette erreur-là ne serait pas rédhibitoire. VB6 transformerait automatiquement en alphanumérique.
Non ... c'est- tout un "tissu" qui ne "va" pas.

En fait : c'est toute une approche confuse. Ca.marchera avait il y a quelques jours (mon petit doigt, hein ... - clin d'oeil) tenté de "mélanger" l'utilisation d'un fichier texte plat avec l'utilisation d'une structure (!) etc ... avec le résultat que l'on pouvait deviner.
Nous voilà maintenant avec un fichier structuré.
Mes questions (toutes) ont leur importance. Elles sont toujours sans réponse précise !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
Bon,
J'espère que tu as suffisamment été "secoué" pour avoir commencé à bûcher sérieusement.
Tu n'as pas répondu à toutes mes questions. Je vais alors considérer que ces rajouts doivent pouvoir se faire entre plusieurs sessions également.
Regarde ce que fait ceci :

Private Type ENR
pseudo As String * 10
passe As String * 6
niveau As Byte
score As Integer
End Type
Private joueur As ENR
Private Sub Form_Activate()
Dim i As Byte
Combo1.Clear
For i = 0 To 3
Combo1.AddItem i + 1
Next
End Sub
Private Sub valider_Click()
' je te laisse (on ne va tout de même pas tout faire à ta place)
' faire ici tes contrôles de cohérence (sur les textboxes et ma combo)
' et quitter cette procédure (ravec message éventuel) si incohérence.
' c'est trop rudimentaire pour que je l'écrive à ta place
With joueur
.pseudo = Text1.Text
.passe = Text2.Text
.niveau = Val(Combo1.List(Combo1.ListIndex))
.score = Val(Text3.Text)
End With
ajout_inscription joueur
End Sub
Private Sub ajout_inscription(joueur As ENR)
Dim fichier As String, nb_enr As Integer, num_enr As Integer, kiki As ENR
fichier = "D:\joujou.txt" ' ===> mets ici le chemin de TON fichier
Open fichier For Random As #1 Len = Len(joueur)
nb_enr = FileLen(fichier) \ Len(joueur)
' MsgBox nb_enr ==>> mis en commentaire (m'en suis servi ..)
Select Case nb_enr
Case 0
Put #1, 1, joueur
Case Else
For num_enr = 1 To nb_enr
Get #1, num_enr, kiki
If kiki.pseudo = joueur.pseudo Then
MsgBox "pseudoi déjà existant ! refusé "
Exit For
End If
Put #1, nb_enr + 1, joueur
Next
End Select
Close #1
End Sub


Analyse, comprends et adapte.
J'ai mis l'essentiel dans une routine et non directement dans le click du bouton valider. Ce n'est pas pour rien que je l'ai fait ==>> essaye d'attraper la perche au vol, hein ...(un indice : la même procédure, avec des arguments additionnels, doit pouvoir servir à d'autres fins ... pas difficile de les deviner).

Quant à tes "chisoiseries" de lecture : je ne pourrais te répondre à ce sujet tant que tu n'auras toujours pas précisé comment tu lis le fichier.
Voilà
Bonne chance.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend