Se connecter / S'enregistrer
Votre question

[résolu] [C++] Ecriture partielle dans un fichier

Tags :
  • Script
  • Programmation
Dernière réponse : dans Programmation
20 Juin 2006 11:30:19

Bonjour,

Mon programme est sensé lire ligne à ligne un fichier, effectuer une mise à jour sur certains champs, et tout recopier dans un nouveau fichier.

Seulement, lorsque je mets la procédure "memofiche" (celle qui doit faire les mise à jour) dans mon script, presque une centaine d'enregistrements ne sont pas recopier dans le nouveau fichier... pouvez vous m'aider?

Voici le source.

Autres pages sur : resolu ecriture partielle fichier

20 Juin 2006 15:06:36

essaie avec ca :

  1. if(tab[28]=="1")
  2. {
  3. tab[28]="860L8311";
  4. }
  5. else
  6. {
  7. tab[28]='\0';
  8. }


pour chacun des else.

Mais tu aurais pu mettre un for a la place de tous ces if...else

  1. for (i=28;i < 38; i++)
  2. {
  3. ...
  4. }
20 Juin 2006 15:38:06

Je ne vois pas comment j'aurais pu mettre un for() puisque la référence que j'affecte dans tab change selon i.

Après, peu être que je ne vois pas comment faire.
Contenus similaires
20 Juin 2006 15:42:55

Je viens de tester avec '\o' et ça ne change rien... j'ai toujours des enregistrements qui disparaissent.

J'ai tester ce code avec un autre fichier et il fonctionne parfaitement.

Comment mettre à jour ce fichier?
20 Juin 2006 17:18:50

desolé pour le coup du for(), en effet c'est pas possible.

sinon c'est pas '\o' mais '\0' (zero) ou " \0" (espace + zero)

Si jamais ca marche pour certains fichiers et pas d'autres, c'est que les fichiers pour lesquels ca ne marche pas ont une difference. A toi de voir laquelle.

Une chose aussi si jamais ton tab est un tableau de char vaut mieux faire un stcmp au lieu d'un "==" et un strcpy a la place du "=":


  1. if(!strcmp(tab[28], "1"))
  2. {
  3. strcpy(tab[28], "860L8311");
  4. ou
  5. strcpy(&tab[28], "860L8311");
  6.  
  7. }
  8. else
  9. {
  10. tab[28]="\0";
  11. }


sinon apart ca je vois pas.
21 Juin 2006 09:10:49

J'ai essayer les strcmp et strcpy et c'est pareil... j'ai vraiment plus d'idées pour mettre à jour ce fichier...

Si vous avez des codes qui reviendraient au même, je suis preneur.
a b L Programmation
21 Juin 2006 12:59:59

C'est quoi le problème, le fait que les données ne sont pas envoyé dans un write ou le fait que les données envoyées ne sont pas physiquement écrites sur le disque ?
21 Juin 2006 13:05:06

Le problème est qu'elle ne sont pas écrites sur le disque.
22 Juin 2006 16:49:21

Finalement le problème venais d'un point virgule qui se promenait dans le fichier.
Vu je travail sur un fichier en .csv et que je fais mes découpe selon les point virgule, ça a posé problème.

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS