[C] Probleme avec lecture fichier

Probleme avec lecture fichier [C] - C - Programmation

Marsh Posté le 25-04-2004 à 00:03:31    

Salut tout le monde
 
je reviens avec un petit probleme incomprehensible :
 
je traite un fichier dans un prog c. jusqu'ici tout va bien.
 
J'arrive à le lire, à en afficher les données en passant par une structure et enfin à les modifier....
 
petit probleme pour les supprimer. J'ouvre le fichier, je lis, je supprime une donnée. La modification se fait dans le fichier txt mais pas en lisant par le prog (sans le fermer).
 
J'ouvre bien tout comme il faut, je ferme bien tout comme il faut. La modification est effective immédiatement.
 
je me demandais si ça n'était pas les données de la structure qui restaient en mémoire. J'ai essayé de la vider à chaque traitement sans succes.
 
Voici la structure et merci de votre aide eventuelle :
 

Code :
  1. struct utilisateurs
  2. {
  3.     char nom[21];
  4.     char prenom[21];
  5.     char password[9];
  6.     char fonction;
  7.     char login[9];
  8. };

Reply

Marsh Posté le 25-04-2004 à 00:03:31   

Reply

Marsh Posté le 25-04-2004 à 00:23:02    

« La modification se fait dans le fichier txt mais pas en lisant par le prog (sans le fermer).  » ça veut dire quoi ça ?

Reply

Marsh Posté le 25-04-2004 à 01:15:57    

Je crois qu'il veut dire qu'après suppression de certaines données, le fichier est bien modifié mais si il le lit via son programme, il a toujours l'ancienne version de son fichier, c'est bien ca ?
Les modifications sont effectives uniquement à partir du moment où tu fermes le fichier (fclose) ou que tu forces la modification via fflush(FILE* fd).
 
Par contre, je ne vois pas le rapport avec la structure ??

Reply

Marsh Posté le 25-04-2004 à 09:03:40    

ben j'ai ferme le fichier comme il faut avec fclose mais les donnees ne changent pas :'(

Reply

Marsh Posté le 25-04-2004 à 11:54:55    

montre ton code... on va voir ca.

Reply

Marsh Posté le 25-04-2004 à 11:58:50    

le code est enorme
 
mais en gros je vais le schematiser :
 
ouverture de fichier en lecture
rangement dans une structure
fermeture de fichier
 
choix de "ligne" à supprimer apres reaffichage de la structure mise en forme
 
ouverture de fichier en ecriture
rangement de toutes les lignes SAUF celle concernée (apres verification sur le fichier physique la modification est effective) dans le fichier
fermeture du fichier
 
Reaffichage==> la ligne a bien disparu
 
On recommence le processus et là ==> Les lignes ne disparaissent plus :'(
 
Donc ça marche qu'une fois

Reply

Sujets relatifs:

Leave a Replay

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