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

  FORUM HardWare.fr
  Programmation
  C

  Re-écrire dans un fichier .txt

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Re-écrire dans un fichier .txt

n°1546779
Nichlas
Posté le 22-04-2007 à 22:06:08  profilanswer
 

Salut,
 
j'ai un fichier texte contenant : NOM, PRENOM, SOMME, N°CLIENT
 
- Mon programme va regarder combien le client possède sur son compte.  
- Nous sera demandé ensuite combien celui veut retirer de son compte.
 
Le calcul somme - somme_a_retirer est alors effectué.
 
Ensuite je voudrais aller modifier la somme dans le fichier texte une fois la demande de retrait effectuée, mais je ne sais pas comment faire...
 
Merci.
 

Code :
  1. #include<stdio.h>
  2. typedef struct
  3. {
  4.    char nom[15];
  5.    char prenom[15];
  6.    float somme;
  7.    int id;
  8. }
  9. Compte;
  10. Compte client;
  11. float somme_a_retirer;
  12. float modif;
  13. int main(void)
  14. {
  15.    FILE *f1;
  16.    f1=fopen("client.txt", "r-w" );
  17.    fscanf(f1, "%s %s %f %d", &client.nom, &client.prenom, &client.somme, &client.id);
  18.    printf("Information : %s %s %f %d\n", client.nom, client.prenom, client.somme, client.id);
  19.    printf("Combien voulez-vous retirer ?\n" );
  20.    scanf("%f", &somme_a_retirer);
  21.    modif=client.somme - somme_a_retirer;
  22.    ///////// Comment faire ? \\\\\\\\\
  23.    fclose(f1);
  24. }


Message édité par Nichlas le 22-04-2007 à 22:08:21
mood
Publicité
Posté le 22-04-2007 à 22:06:08  profilanswer
 

n°1546783
flo850
moi je
Posté le 22-04-2007 à 22:10:32  profilanswer
 

il est assez diificile de modifier un fichier  
 
le plus simple ets souven de recopier le fichier avec les données modifiée dans un fihcier temportaire, puis de remaplcer le fichier par le temporaire
 
sinon, on a inventé ( recemment ) les bases de données pour ce genre de besoin  [:twixy]

n°1546787
Nichlas
Posté le 22-04-2007 à 22:13:20  profilanswer
 

Ouais les BDD c'est sûr que c'est très pratique, mais je fais ça pour manipuler le C avec des fichiers .txt
 
Ca va être très dûr à faire donc ?  :(

Message cité 1 fois
Message édité par Nichlas le 22-04-2007 à 22:16:08
n°1546788
flo850
moi je
Posté le 22-04-2007 à 22:17:36  profilanswer
 

non, mais passe par un fichier temporaire, ca ira mieux  
 
tu dois pouvoir remplacer un bout de fichier, mais il faut faire tres attention a la taille des données

n°1546789
Nichlas
Posté le 22-04-2007 à 22:19:21  profilanswer
 

Ca ne risque pas d'être la galère... car avec un seul client ça doit être jouable, mais si j'en ai 5-10... aie aie non ?


Message édité par Nichlas le 22-04-2007 à 22:19:31
n°1546793
Sve@r
Posté le 22-04-2007 à 22:25:25  profilanswer
 

Nichlas a écrit :

Ouais les BDD c'est sûr que c'est très pratique, mais je fais ça pour manipuler le C avec des fichier .txt


Tu veux sans doute dire "manipuler les fichiers txt avec le C" !!!
 

Nichlas a écrit :

Ca va être très dûr à faire donc ?  :(


Ca dépend. Un fichier informatique se caractérise par 2 attributs

  • sa géographie (la disposition des informations)
  • sa taille d'enregistrements


A partir de là, on peut avoir 4 cas
1) géographie fixe, taille fixe => chaque ligne contient les mêmes infos de même taille dans le même ordre
2) géographie fixe, taille mobile => chaque ligne contient les mêmes infos dans le même ordre mais pas de même taille => Il faut un séparateur qui sépare les infos les unes des autres (ex: un csv)
3) géographie mobile, taille fixe => chaque ligne contient les mêmes infos de même taille mais pas dans le même ordre => chaque info est donc précédée de sa caractéristique pour qu'on sache de quoi il s'agit quand on la traite
4) géographie mobile, taille mobile => t'auras bien compris le schéma
 
Si tu veux modifier un fichier de type "1" ou "3", pas compliqué => tu te places au début de l'enregistrement à modifier et t'en écris un autre de même taille => le nouveau remplace l'ancien
Dans les deux autres cas, évidemment, tu peux plus te faire pareil car les infos sont de tailles différentes => tu peux donc écrire trop et déborder sur l'enregistrement suivant => une première solution consiste à lire l'enregistrement, revenir en arrière de la taille lue puis reécrire par dessus. La seconde est de tout stocker le fichier en mémoire, travailler dessus puis tout réécrire !!!


Message édité par Sve@r le 22-04-2007 à 22:37:08

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1546795
Nichlas
Posté le 22-04-2007 à 22:26:37  profilanswer
 

Pour moi qui programme depuis 6 mois, je suis en galère quoi :pt1cable:

Message cité 1 fois
Message édité par Nichlas le 22-04-2007 à 22:27:15
n°1551011
Sve@r
Posté le 28-04-2007 à 19:08:17  profilanswer
 

Nichlas a écrit :

Pour moi qui programme depuis 6 mois, je suis en galère quoi :pt1cable:


Arf... c'est en forgeant qu'on devient forgeron... :sol:  


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Re-écrire dans un fichier .txt

 

Sujets relatifs
[C] utiliser un nombre stocké dans un fichier[PHP][resolu] Comment appeler une fonction située....
Lire un fichier a l'enversEcriture dans un fichier Excel
traitement dans un fichier texteAccès fichier sur serveur distant
[VBA] Ouverture fichier avec boite dialogueOuverture de fichier avec macros, sans confirmation (par certificat ?)
[Bash] choisir une ligne d'un fichier avec une boucle select[débutant] retrouver la ligne courante du fichier
Plus de sujets relatifs à : Re-écrire dans un fichier .txt


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