Modifier une entrée dans un fichier. / Mise en page / Fonction Temps

Modifier une entrée dans un fichier. / Mise en page / Fonction Temps - C++ - Programmation

Marsh Posté le 19-06-2002 à 13:58:10    

Bonjour , j'ai 3 QUESTIONS
 
Question 1
 
Comment peux-t on faire pour modifier une entree dans un fichier.
J'ai un fichier client avec des donnée sur mes clients . Est -il possible de modifier une entrée de ce fichier.
 
Par exemple, modifier les données de Jean.
 
 
Question 2
 
Comment faire pour afficher les données en colonne , en respectant une largeur de Colonne.
j'ai utilisé "%t" pour l'indentation mais  lorsque j'ai un nom d'une colonne qui est plus long que le nom d'une autre colonne tout se decale.
 
 
 
Question 3
 
Comment comparer une date entré par un utilisateur à la date courante  ?
 
 
 
desole pour toutes ces questions et merci

Reply

Marsh Posté le 19-06-2002 à 13:58:10   

Reply

Marsh Posté le 19-06-2002 à 14:54:45    

tu bosse sous quoi comme OS?
 
Question 1: c possible mais faut réécrir tout le fichier en modifiant ce qui a changé.
 
Question 3: regarde du ^côté de time.h


---------------
Le Tyran
Reply

Marsh Posté le 19-06-2002 à 15:11:50    

je travail avec Borland C/c++ sous windows 2000
 
j'ai une structure record dans la quelle je rentre mes données.
 

Code :
  1. struct record
  2. { char fname[20+1];    /* nom du client terminé par NULL*/
  3.    char lname[15+1];    /* prenom du client terminé par NULL */
  4.    char mname[10+1];    /* second prénom du client terminé par NULL */
  5.    char phone[15+1];    /* numéro de téléphone terminé par NULL */
  6.    char adresse[30+1];  /* adresse du client terminé par NULL */
  7.    char ville[50+1];    /* ville du client terminé par NULL */
  8.    char pays[20+1];  /* pays d client */
  9.    char abo[10+1];   /* type d'abonnement cu client */
  10.    char codep[10+1];  /* code postal de l'abonnée */
  11.    int id;      /* numero de client du client   */
  12.    char datedeb[30+1]; /* date du 1er envoi */
  13.    char reg[30+1];  /* mode de reglement */
  14. } rec;


 
et ses données sont ecrites dans un fichier
 

Code :
  1. /* ---- ouverture du fichier --- */
  2.   if ((fp = fopen(argv[1], "a+" )) == NULL)
  3.    { fprintf(stderr, "%s(%d)--Erreur à l'ouverture du fichier \
  4.              %s", argv[0],__LINE__, argv[1]);
  5.      exit(1);
  6.    }


 
voila comment j'ecris dans le fichier... a l'aide d'un fonction get_data()
 

Code :
  1. *  get_data()                                      *
  2.   ****************************************************/
  3. void get_data(FILE *fp, char *progname, char *filename)
  4. { int cont = OUI;
  5.    while(cont == OUI)
  6.    { printf("\n\nIndiquez ci-après les renseignements :" );
  7.      rec.id++;
  8.      printf("\n\nNom de famille du Client : " );
  9.      gets(rec.fname);
  10.      printf("\nprenom : " );
  11.      gets(rec.lname);
  12.      printf("\nsecond prenom : " );
  13.      gets(rec.mname);
  14.      printf("\nNuméro de telephone sous la forme 01 11 22 33 44 : " );
  15.      gets(rec.phone);
  16.      printf("\nAdresse : " );
  17.      gets(rec.adresse);
  18.      printf("\nVille : " );
  19.      gets(rec.ville);
  20.      printf("\nCode postal : " );
  21.      gets(rec.codep);
  22.      printf("\nPays : " );
  23.      gets(rec.pays);
  24.     /* printf("\nNumero de client : " );
  25.      gets(rec.id);   */
  26.      printf("\nType d'abonnement : " );
  27.      gets(rec.abo);
  28.      printf("\nMode de reglement : " );
  29.      gets(rec.reg);
  30.      printf("\n Date du 1er envois : " );
  31.      gets(rec.datedeb);
  32. if (fseek(fp, 0, SEEK_END) == 0)
  33. if(fwrite(&rec, 1, sizeof(rec), fp) != sizeof(rec))
  34.   { fprintf(stderr, "%s(%d) -- Erreur en écriture sur le \
  35.                  fichier %s", progname, __LINE__, filename);
  36.          exit(2);
  37.        }
  38.       cont = continue_function();
  39.     }
  40.   }


 
j'espere que vous comprenez ....sinon je peux vous mettre un lien avec le code en ligne...
 
merci

Reply

Marsh Posté le 19-06-2002 à 16:03:12    

:bounce:
 
y a personne qui peux m'aider ?????????????????? :sweat:

Reply

Marsh Posté le 19-06-2002 à 19:04:59    

UP
:bounce:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed