Page 1 sur 1

Ecrire dans un fichier binaire

Posté : lun. 18 août 2014 10:49
par rattlesnake
Bonjour,

Je travaille sur des fichiers de mesures météorologiques (txt) regroupées en colonnes. Une fois que j'ai extrait chaque colonne pour pouvoir l'utiliser seule, l'entreprise me demande de stocker ces données sous format 16bits dans un fichier binaire. J'aimerais savoir comment faire pour que, en ouvrant mon fichier de base et en le lisant en ASCII je puisse en faire plusieurs fichiers .bin avec la conversion que cela implique ...
Ci-dessous le code correspondant à l'extraction des colonnes de données, mais pour le moment la lecture ET l'écriture se font sous format ASCII ...

#include iostream
#include fstream
#include string


int main()
{
using namespace std;





   ifstream liste("liste_de_fichiers.txt", ios::in);
   
   if(liste)
   {
      string lisligne;
      string filename0, filename1,filename2,filename3,filename4;
      string ligne;
      double doublea,doubleb,doublec,doubled,doublee,doublef;
      double double1, double2, double3, double4, double5, double6;
      
      
      while(getline(liste, lisligne))
      {
            
            liste filename0; //lecture du nom de fichier dans un fichier "liste de fichiers"
            filename1 = "/home/rs/Desktop/eclats/" + filename0 + "_1"; //création du nom du fichier où sera retranscrite la colonne 1
            filename2 = "/home/rs/Desktop/eclats/" + filename0 + "_2"; //colonne 2
            filename3 = "/home/rs/Desktop/eclats/" + filename0 + "_3"; // 3
            filename4 = "/home/rs/Desktop/eclats/" + filename0 + "_4"; // 4
            filename0 = "/home/rs/Desktop/données_modèles/données_modèles/2011/" + filename0; //Nom du fichier de base (avec toutes les colonnes)
            
            ifstream fichier0(filename0.c_str(), ios::in); //fichier lecture
            ofstream fichier1(filename1.c_str(), ios::out); // ecritures
            ofstream fichier2(filename2.c_str(), ios::out);
            ofstream fichier3(filename3.c_str(), ios::out);
            ofstream fichier4(filename4.c_str(), ios::out);

            if(fichier0 fichier1 fichier2 fichier3 fichier4)
               {
                                 
                     fichier0 doublea doubleb doublec doubled doublee doublef; //lecture des 6 colonnes
                     //retranscription d'une colonne par fichier                     
                     fichier1 doublec*100;
                     fichier2 doubled*100;
                     fichier3 doublee*100;
                     fichier4 doublef*100;
                  while(getline(fichier0, ligne))  // tant que l'on peut mettre la ligne dans "contenu"
                  {                     
                                          
                           fichier0 double1 double2 double3 double4 double5 double6;
                           fichier1 double3*100;
                           fichier2 double4*100;
                           fichier3 double5*100;
                           fichier4 double6*100;
                        
                  }
                  //fichiers traités
                  coutfilename0endl;
                  coutfilename1endl;
                  coutfilename2endl;
                  coutfilename3endl;
                  coutfilename4endl;
               }
               else
                  cerr"Impossible d'ouvrir le fichier!1"endl;
         
      }
      
      liste.close();
   }
   else
      cerr"Impossible d'ouvrir le fichier!"endl;

   return 0;
}
Merci d'avance !

Ecrire dans un fichier binaire

Posté : jeu. 21 août 2014 14:03
par cerede2000
Bonjour,

Pourrais tu être un peu plus précis.
Quelles sont les données à stockés ? (un exemple serait pas mal).

Car écrire dans un fichier binaire ça veut pas dire grand chose
Un fichier .exe est un fichier binaire en autre...

Vu que c'est ton programme, c'est toi qui détermine la manière dont tu stock tes données.