Bonjour!!
je vous en prie aidez moi svp!!
j'ecris ce code qui permet de lire un fichier txt, apres l'ouverture je dois lire une ligne et extraire les donnees qui se trouve entre les ;
#include<sstream>
#include <fstream>
#include <iostream>
#include <string.h>
#define LongMaxLigne 1000;
#include<string>
using namespace std;
class fichier
{
public :
ifstream* pFileStream;
char fileName[80];
//long lecture_ligne_fichier buffer[80];
char buffer[80];
bool etat; //booleen accepte que des valeurs 0 et 1
int noBytes;
char c;
char Ligne[1000] ;
public: fichier()
{
openFile(cin); //ouverture
readFile(); //lecture
getchar();
}
void openFile(istream& input)
{
do
{
// ouverture du fichier spécifié par l'utilisateur
cout << "Entrez le nom d'un fichier" << endl;
// lit la saisie faite par l'utilisateur de façon
// à ne pas provoquer de débordement du tampon clavier
input.getline(fileName, 80);
// ouvre le fichier en lecture ; ne crée pas le fichier
// s'il n'existe pas déjà
pFileStream = new ifstream(fileName);
etat=pFileStream->good();
if (etat)
{
cout << "ouverture du fichier " << fileName << endl;
// return 0;
}
else
cerr << "Impossible d'ouvrir " << fileName << endl;
// return 0;
}
while(!etat);
}
//int lire_champ(char*a, FILE*fileName)
void readFile(void)
{
pFileStream->eof();
while (!pFileStream->eof() && pFileStream->good())
{
// lit un bloc - 80 est le maximum mais gcount()
// renvoie le nombre réel d'octets lus
pFileStream->read(buffer, 80);
noBytes = pFileStream->gcount();
// fait quelque chose avec le bloc
for(int i = 0; i < noBytes; i++)
{
// cout<<"ddddddd"<<endl;
cout << buffer[i]; //affiche octets par octets
}
}
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
}
};
int main(int a, char* b[]){
class fichier test;
//read Filename(fileName);
system("PAUSE");
return 0;
}
Ici c'est un exemple du contenu du fichier
quand je lis une ligne pour les champs je dois avoir :
Champ1=1003314751 champ2=06/02/2006 01:22:38:367 champ3=4502.....
1003314751;06/02/2006 01:22:38:367;4502;SNPI;SEREXP1;DIFFERENCE PROGRAMMATION SUIVI ORIGINE 219;2b;2;Train inattendu sur origine 219 index programmé 152851 index suivi 153107;1;0;2;idem exploitation;2
1003314752;06/02/2006 01:27:06:710;8518;SUIVI;SEREXP2;Création index //1743 - fenetre 4;2b;2;Fenêtre de visualisation : (canton non visualisé);1;0;0;idem exploitation;3,1,2
AIDEZ MOI JE VOUS EN SUPPLIE