begin process at 2012 05 29 23:03:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Fichier / Disque

 > 

Lecture d'un fichier pour mettre les données dans un tableau


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Lecture d'un fichier pour mettre les données dans un tableau

dimanche 24 avril 2005 à 21:13:45 | Lecture d'un fichier pour mettre les données dans un tableau

cyberkate

Bonjour !

Je développe une application en mode console en C++.
Voici le thème : je veux gérer des clients qui réalisent plusieurs abonnements à un magazine.

J'ai donc créé une classe C_client et une classe C_abonnement.
Lors du chargement de l'application, je souhaite lire un fichier dans lequel je stocke les données. Pour cela, je voudrais placer dans un tableau tabClient de type C_client, au lancement de l'application, toutes les données relatives à chaque client (nom, prenom, etc.)

Pour ce qui est du chargement, voici ma fonction actuelle :
void chargeClient()
{
monFichier = fopen("abonnements.txt", "r+"); //ouverture du fichier en lecture

  if (monFichier == NULL)
  {
   cout << "Erreur d'ouverture du fichier Abonnements." << endl;
  }
  else
  {
   int i;
   for (i=0;i<MAXIMUM;i++)
   {
    tmp = fread(&clientEnCours, sizeof(clientEnCours), 1, monFichier); // on lit une ligne par une ligne

    if (!tmp) // si la ligne est vide
    {
     cout << "Erreur de lecture." << endl;
    }
    else
    {
     tabClient[i] = clientEnCours;
    };
   };

   fclose(monFichier); // fermeture du fichier
  };
};


Et pour l'enregistrement :
void enregFichier()
{
 //int i;

 // si le fichier est lisible...
 if ( is_readable( "abonnements.txt" ) )
    { // ...alors on écrit dedans en effacant tout
  std::ofstream file("abonnements.txt");
  for (int i=0; i<MAXIMUM; i++)
  {
   file << tabClient[i] << endl;
  };
  file.close();
 };
};


Pour plus de précisions, vous pouvez regarder ce post ou bien télécharger le script des fichiers .cpp et .h ici.

Merci de votre aide.

dimanche 24 avril 2005 à 23:01:39 | Re : Lecture d'un fichier pour mettre les données dans un tableau

luhtor

Mais évites d'utiliser deux librairies différentes. Tu as enregistrer avec fstream donc lit également le fichier avec fstream.

void chargeClient()
{
std::ofstream monFichier
monFichier.open("abonnements.txt",std::ios::in);

   int i;
   for (i=0;i<MAXIMUM;i++)
   {
    tmp = fread(&clientEnCours, sizeof(clientEnCours), 1, monFichier);

     tabClient[i] = clientEnCours;
   }

   monFichier.close();
};

T'encombre pas avec la gestion d'erreur pour le moment.

    tmp = fread(&clientEnCours, sizeof(clientEnCours), 1, monFichier); // on lit une ligne par une ligne

Ah bon ? tu lis pas une ligne par ligne la. La taille retournée par sizeof n'a aucun rapport avec la quantité de donnée utilisé pour mémoriser. Ca n'a un rapport que si tu enregistres en binaire.

Ensuite, pourquoi tu mets une boucle fort ?
   for (i=0;i<MAXIMUM;i++)

Enfin, ce genre de chose, faut pas réver, ca marche pas :)
     tabClient[i] = clientEnCours;

La librairie lit du texte, et faut le convertir en float ou int s'il le faut.

Pour pouvoir t'aider faut que tu postes le fichier abonnements.txt
lundi 25 avril 2005 à 20:58:22 | Re : Lecture d'un fichier pour mettre les données dans un tableau

cyberkate

En fait, ce que je voudrais faire, c'est stocker au chargement de l'application les clients dans mon tableau tabClient. D'où ma boucle. Je pensais lire "client par client" dans le fichier et ajouter les données (nom, prenom, etc ainsi que le tableau d'abonnements).
Puis c'est dommage que tabClient[i] = clientEnCours; ne marche pas... Je ne vois pas comment faire.

Sinon, pour mon fichier txt, tu peux le télécharger ici. Il ne possède pour l'instant qu'un client sans abonnements (je n'arrive toujours pas à enregistrer les abonnements)

PS : Il y a un petit bug au niveau du code postal qui vient de je ne sais où... il concatène la ville.


Cette discussion est classée dans : fichier, lecture, données, monfichier, abonnements


Répondre à ce message

Sujets en rapport avec ce message

Lecture de fichier [ par giuseppe2 ] Bonjour,Je commence tout juste en C++ et je me galère commen un fou pour des histoires de lecture de données à partir d'un fichier.J'ouvre un fichier lecture écriture dans un fichier [ par debutantprog ] bonjourmon pb n'est pas bien original et je cherche toujours parmis les réponses déjà proposés ue solution seulement les différents programmeurs n'uil Lecture d'un fichier de données en C [ par sandy27 ] Alors je vais poser une question qui a déjà été posée dans le forum, mais les réponses ne me conviennent pas ! je veux lire un fichier qui contient de lecture logique d'un fichier txt en C [ par samissam ] Comment puisse je faire le traitement des données d'un fichier en langage C? Mes données sont dans un fichier txt et qui représentent un Arbre de d Base de données - Fichier [ par Kebims78 ] Bonjour à tous, Je suis actuellement plongé dans un projet utilisant la sauvegarde dans un fichier en local dans la même racine que mon exécutable. Je Lecture ligne par ligne de fichier txt en C++pour re-jeu de données Temps Reel [ par DamienR83 ] Bonjour, Je souhaite faire une API en C++ avec un affichage de données en "pseudo temps-réel". L'ensemble des mes données sont déjà enregistrées par Lecture de fichiers verrouillés [ par norton ] Bonjour / Bonsoir à tous. Pouvez-vous me dire si il est possible sous Windows de lire un fichier en "temps réel" verrouillé par le système ? Je m'e [C++] Lecture et écriture binaire [ par pop70 ] Bonjour, voici mon problème : J'ai des objet que j'aimerais sauvegarder (j'ai simplifié mon code en utilisant un seul objet string) via une écriture probleme de zero binaire dans un enregistrement [ par thefifou ] Bonjour a tous, Je vous ecris afin de trouver un peu d'aide. Mon problème est le suivant: Je dois lire, ligne par ligne, un fichier en entrée, manipul Probleme avec lecture fichier INI [ par Kaioshin12 ] Bonjour, J'ai un soucis avec la lecture d'un fichier .ini. J'utilise la fonction : GetPrivateProfileString("DATABASE","Serveur","",MaVariable,100,"Co


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,764 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales