Problème de longueur d'enregistrement incorect [Résolu]

Messages postés
37
Date d'inscription
jeudi 10 février 2005
Dernière intervention
10 janvier 2008
- - Dernière réponse : ScSami
Messages postés
1490
Date d'inscription
mercredi 5 février 2003
Dernière intervention
3 décembre 2007
- 6 juil. 2005 à 03:09
Salut à tous !



je suis toujours en train de réaliser mon répertoire en séquenciel et j'ai un nouveau problème !!!!



j'éssai d'enregistrer à l'aide de la commande Put le contenue d'une vingtaine de variable dans un fichier .rep en utilisant un Type.



seulement a chaque fois que je renseigne toute mes variables et que
j'éssaie de les enregistrer, j'ai droit au message suivant Erreur 59
longueur d'enregistrement incorrect !



si quelqu'un pouvait m'aider afin de modifier cette longueur (ci c'est
faisable !) ou a corriger ce facheux problème qui m'empèche totalement
de continuer !



Merci d'avance !



Nyko
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
37
Date d'inscription
jeudi 10 février 2005
Dernière intervention
10 janvier 2008
3
Merci
C'est bon le prb est résolue ! En fait c'est parceque c'est des enregistrement de longueur fixe donc les données enregistrées doivent aussi avoir une longueur fixe avec Random

Private Type Enreg
nom As string *20
...
End Type !!!

Voilou ! merci quand même pour ton aide !!!!

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Messages postés
1490
Date d'inscription
mercredi 5 février 2003
Dernière intervention
3 décembre 2007
26
0
Merci
Balance ton code et on verra ce qui ne va pas... parce que c'est pas trop méchant ça!



Mais, entre nous, essaie déjà d'initialiser la variable que tu utilises
dans ton Put un peu avant avec un valeur bidon (mais du même type!!!).



Enjoy
Messages postés
37
Date d'inscription
jeudi 10 février 2005
Dernière intervention
10 janvier 2008
0
Merci
Salut ScSami !



mon code une fois épuré donne à peut près ca :



Dans le modul :



Public choix As String

Public nf As Long



Public Type Enreg

nom As String

prenom As String

ddn1 As String

ddn2 As String

ddn3 As String

adem As String

adt As String

tp1 As String

tp2 As String



choix As String



nome As String

fonce As String

tele As String

faxe As String

ade As String

cpe As String

villee As String



adp As String

cpp As String

villep As String

telp As String

faxp As String

pdip As String



ads As String

cps As String

villes As String

tels As String

faxs As String

pdis As String

End Type





Dans la Form :



Dim carnet1 = Enreg


Private Sub Ajouter_Click()



With carnet1

.nom = Ajoutcontact1.Text1.Text

.prenom = Ajoutcontact1.Text2.Text

.ddn1 = Ajoutcontact1.Text3.Text

.ddn2 = Ajoutcontact1.Text4.Text

.ddn3 = Ajoutcontact1.Text5.Text

.adem = Ajoutcontact1.Text6.Text

.adt = Ajoutcontact1.Text7.Text

.tp1 = Ajoutcontact1.Text8.Text

.tp2 = Ajoutcontact1.Text9.Text



.choix = choix



If choix = "" Then

.choix = "aucun"

End If



If choix = "aucun" Then

.nome = ""

.fonce = ""

.tele = ""

.faxe = ""

.ade = ""

.cpe = ""

.villee = ""

End If



If choix = "travail" Then

.nome = Ajoutcontact1.Text10.Text

.fonce = Ajoutcontact1.Text11.Text

.tele = Ajoutcontact1.Text12.Text

.faxe = Ajoutcontact1.Text13.Text

.ade = Ajoutcontact1.Text14.Text

.cpe = Ajoutcontact1.Text15.Text

.villee = Ajoutcontact1.Text16.Text

End If



If choix = "ecole" Then

.nome = Ajoutcontact1.Text17.Text

.fonce = Ajoutcontact1.Text18.Text

.tele = Ajoutcontact1.Text19.Text

.faxe = Ajoutcontact1.Text20.Text

.ade = Ajoutcontact1.Text21.Text

.cpe = Ajoutcontact1.Text22.Text

.villee = Ajoutcontact1.Text23.Text

End If



.adp = Text1.Text

.cpp = Text2.Text

.villep = Text3.Text

.telp = Text4.Text

.faxp = Text5.Text

.pdip = Text6.Text



.ads = Text1.Text

.cps = Text2.Text

.villes = Text3.Text

.tels = Text4.Text

.faxs = Text5.Text

.pdis = Text6.Text

End With



nf = FreeFile

Open App.Path & "\users" & username & ".rep" For Random As #nf Len = Len(carnet1)

Put #nf, numenreg, carnet1 'C'est ici que ca bloque !!!

Close #nf





voila ! je pensse que cela fait trop de données sur une seul ligne !
cependant, comme on ne peut pas enregistrer sur 2 lignes (étant donné
que la deuxième ligne correspond au 2ème enregistrement !) je ne voie
pas ce que je peut bien faire !
Messages postés
1490
Date d'inscription
mercredi 5 février 2003
Dernière intervention
3 décembre 2007
26
0
Merci
Essaie déjà ça :



Dim carnet1 As Enreg




nf = FreeFile


numenreg = 1

Open (App.Path & "\users" & username & ".rep") For Random As #nf Len = Len(carnet1)

Put #nf, numenreg, carnet1

Close #nf


Mais la MSDN (l'aide du VB) dit que la taille maxi des
enregistrements est de 32'768, donc, franchement, je ne vois pas ce qui
peut poser problème !!!



Sinon faut essayer dans un autre mode comme Input!

(je suis pas un expert en ce qui conserne le mode Random [justement à cause de cette taille de l'enregistrement!!!])

Sinon, tu peux aussi essayer d'enlever le "Len = Len(carnet1)" !!!



Dit moi déjà ce que ça donne pi sinon je tenterais de regarder ce
problème d'un peu plus près (au fait, tu ne m'as pas dit ce qui était
sensé être dans les différents champs!!!






Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse accéptée". )
Messages postés
1490
Date d'inscription
mercredi 5 février 2003
Dernière intervention
3 décembre 2007
26
0
Merci
Bon a savoir!!!

Alors dans ce cas, c'est moi qui te remerci pour cette réponse (
J'ai un peu honte quand même... c'est celui qui vient aidé qui se fait
finalement aidé!!! Mais bon, c'est comme ça qu'on apprend le mieux...
en trouvant soit-même même si on peut perdre parfois beaucoup de temps!!!)



Désolé de n'avoir pas pu faire mieux...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.