Problème de longueur d'enregistrement incorect

Résolu
NykoKurapika Messages postés 37 Date d'inscription jeudi 10 février 2005 Statut Membre Dernière intervention 10 janvier 2008 - 4 juil. 2005 à 19:43
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre 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

5 réponses

NykoKurapika Messages postés 37 Date d'inscription jeudi 10 février 2005 Statut Membre Dernière intervention 10 janvier 2008
5 juil. 2005 à 23:41
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 !!!!
3
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
5 juil. 2005 à 03:57
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
0
NykoKurapika Messages postés 37 Date d'inscription jeudi 10 février 2005 Statut Membre Dernière intervention 10 janvier 2008
5 juil. 2005 à 14:25
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 !
0
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
5 juil. 2005 à 23:31
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". )
0

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

Posez votre question
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
6 juil. 2005 à 03:09
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...
0
Rejoignez-nous