IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Longueur d'enregistrement faux?


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 64
    Par défaut Longueur d'enregistrement faux?
    Voici une petite fonction qui a pour but d'enregistrer les coordonnées d'un client dans un fichier et de me placer en fin de fichier.
    Malheureusement quand je lance mon application, j'ai le message derreur suivant "longueur d'enregistrement incorrect"...
    Je précise qu'il s'agit d'un travaux dirigé et j'ai la solution sous les yeux et elle est identique à ma solution, pourtant ça fonctionne pas, pourquoi?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Enregistrer_Click()
        Dim Num As Integer
        Dim Cl As Client
     
        Num = FreeFile
        Open "Fichier des clients" For Random As #Num Len = Len(Cl)
        Cl.nom = nom.Text
        Cl.prénom = prénom.Text
        Cl.adresse = adresse.Text
        Cl.tél = tél.Text
        Cl.date1 = date1.Text
        Put #Num, LOF(Num) / Len(Cl) + 1, Cl
        Close #Num
    End Sub

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Open "Fichier des clients" For Random As #Num Len = Len(Cl)
    Je ne comprends pas cette partie en gras. #Num est définie par la fonction Freefile. Que vient faire Len=... ?

  3. #3
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    Ce n'est pas de la que vient le probléme phifi
    Il s'agit d'une ouverture en mode acces aleatoire, il faut bien dans ce cas ajouter len= Longueur_de_l_enregistrement à la fin de l'open.

    Dans ce cas d'espece l'enregistrement etant une structure (Type ... End Type)

    Lof(Num) retourne la taille physique du fichier
    Si on le divise par la longeur d'un enregistrement, on obtient le nombre d'enregistrement presents dans le fichier. Sauf si le fichier est mal construit !

    Enfin, dans la fonction Put, pour un fichier à accès aléatoire, la Syntaxe Put #NumFich,Numero_Enregistrement,Variable
    Ce qui est correct dans le cas present.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Citation Envoyé par Delbeke
    Ce n'est pas de la que vient le probléme phifi
    Il s'agit d'une ouverture en mode acces aleatoire, il faut bien dans ce cas ajouter len= Longueur_de_l_enregistrement à la fin de l'open.
    Ok, je ne connaissais pas ce mode. Maintenant oui !

  5. #5
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 64
    Par défaut
    J'ai trouvé l'erreur qui venait pas de moi (pour une fois) mais de ce que l'on m'avait donné à la base.

    En fait je bosse à partir d'une structure Client, et ensuite je fais un formulaire pour remplir un fichier bla,bla et bla.
    Sauf que la structure que l'on m'a donné n'était pas complète, il manquait le nombre de caractère utilisé par chaque membre de la structure. Du coup quand j'ai écrit mon truc le programme ne pouvais calculer la longueur total et faire ce que je lui demandais.

    Je suis crevé moi, j'aurais dû le remarquer plus tôt... La vache cette année de BTS m'aura mis sur les genoux (avec un diplome que je suis même pas sur d'avoir :s)

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Ils apprennent le VB6 en BTS ? Bigre !

  7. #7
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Par défaut
    Citation Envoyé par Phifi
    Ils apprennent le VB6 en BTS ? Bigre !
    eh bien oui, j'y ai eu droit aussi !

  8. #8
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Merci d'avoir donné l'origine du porblème. Ça peut toujours être utile pour ceux qui rencontreraient le même genre de situation.

    Mais il ne faudrait pas oublier de cliquer sur .

  9. #9
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    Personnellement pour ajouter un truc en fin de fichier j'utilise Append plutot que Random.

Discussions similaires

  1. Enregistrement en texte longueur position fixe
    Par phmaire dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/04/2008, 16h29
  2. enregistrements de longueur fixe
    Par VINCENTNINI dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 31/01/2008, 06h35
  3. Transfert Text et longueur d'enregistrements perdu
    Par gripoil dans le forum VBA Access
    Réponses: 3
    Dernier message: 30/08/2007, 23h17
  4. enregistrement de la longueur d'une liste
    Par souadmaa dans le forum Delphi
    Réponses: 4
    Dernier message: 24/01/2007, 12h03
  5. Comment enregistrer un stream de longueur fixe ?
    Par Alcarbone dans le forum MFC
    Réponses: 5
    Dernier message: 13/04/2003, 20h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo