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

NykoKurapika 37 Messages postés jeudi 10 février 2005Date d'inscription 10 janvier 2008 Dernière intervention - 4 juil. 2005 à 19:43 - Dernière réponse : ScSami 1490 Messages postés mercredi 5 février 2003Date d'inscription 3 décembre 2007 Dernière intervention
- 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
NykoKurapika 37 Messages postés jeudi 10 février 2005Date d'inscription 10 janvier 2008 Dernière intervention - 5 juil. 2005 à 23:41
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 !!!!

Merci NykoKurapika 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

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