Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
780 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [PB] Enregistrement sur fichier

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PB] Enregistrement sur fichier

n°1093068
truman
Posté le 23-05-2005 à 10:36:56  profilanswer
 

Bonjour ! Je suis débutant en VB et je n'ai jamais eu encore à manipuler des fichiers : je suis bloqué par une erreur que je n'arrive pas à enlever.
 
Voici la structure d'un de mes clients :

Code :
  1. 'Structure d'un client
  2. Type Client
  3.     numch As Integer       'Numéro de chambre
  4.     nom As String          'Nom
  5.     nbdej As Integer       'Nombre de petits-déjeuners
  6.     chambre As Boolean     'Indique si le client prendra
  7.                            'son petit déjeuner en chambre ou non
  8.     heure As String        'Heure
  9.     Dejeuner() As Dejeuner 'Tableau des petits-déjeuners
  10.     etat As Boolean        'Etat de la commande (vrai si effectuée, faux si annulée)
  11.     prix As Integer        'Montant de la commande
  12. End Type


 
Voici la structure d'un enregistrement :

Code :
  1. 'Structure d'un enregistrement
  2. Type Enr
  3.     numch As Integer      'Numéro de chambre
  4.     etat As Boolean       'Etat de la commande
  5.     nom As String         'Nom du client
  6.     nbp As Integer        'Nombre de personnes
  7.     chambre As Boolean    'Lieu
  8.     heure As String       'Heure
  9.     prix As Double        'Prix
  10. End Type


 
Voici la sub que j'appelle pour enregistrer :

Code :
  1. Sub Save_fic()
  2.     Dim nf, i, j As Integer
  3.     Dim zl As Enr
  4.    
  5.     nf = FreeFile
  6.     Open "fic.txt" For Random Access Read Write As #nf Len = Len(zl)
  7.     For i = 1 To nbcli
  8.         zl.chambre = TC(i).chambre
  9.         zl.etat = TC(i).etat
  10.         zl.heure = TC(i).heure
  11.         zl.nbp = TC(i).nbdej
  12.         zl.nom = TC(i).nom
  13.         zl.numch = TC(i).numch
  14.         zl.prix = TC(i).prix
  15.         Put #nf, i, zl
  16.     Next i
  17.     Close nf
  18.    
  19. End Sub


 
J'obtiens au choix l'erreur "Bad record number" ou bien "Bad record length" à la ligne du Put. Globalement je crois comprendre l'erreur mais je ne vois pas bien pourquoi il me fait ça : zl est bien de la bonne longueur, et le numéro d'enregistrement est valide... HELP ! Merci d'avance.

mood
Publicité
Posté le 23-05-2005 à 10:36:56  profilanswer
 

n°1093175
knakes
Posté le 23-05-2005 à 11:33:21  profilanswer
 

Question : tu ouvre le fichiers et réécis tous les clients ?
 
Edit :
 
Recherches complémentaires sur la fonction PUT :
 
PUT #Fichier, Octet, Variable
 
En clair, le traitement du fichier se fera en mode binaire...


Message édité par knakes le 23-05-2005 à 11:45:35

---------------
now : do nothing
n°1093569
gfa
Posté le 23-05-2005 à 15:49:36  profilanswer
 

Utilise plutôt Write ou WriteLn (il me semble que les deux existent).
 
Mais disons que c'est pas vraiment optimal comme façon de faire... Tu peux pas plutôt utiliser une base de données?
 
Parce que là tu gères comment les doublons, les recherches, ... ?
 
Les fichiers plats, ça se fait plus trop dans ce genre de domaines :)
 
A+


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [PB] Enregistrement sur fichier

 

Sujets relatifs
Modifier un fichier pdf sans lib exterieur ?Lecture d'un fichier texte
Proteger l'acces a un fichiergénérer un fichier excel en php sous apache
[Perl & XML] Validatin d'un fichier XMLcreer un fichier
renommer automatiquement une case dans un fichier Excelrecherche de fichier en java
Remplir des champs d'un fichier pdfRécup de données numérique fichier txt
Plus de sujets relatifs à : [PB] Enregistrement sur fichier


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR