00001 00002 #ifndef FICHIER_H 00003 #define FICHIER_H 00004 00005 #ifdef HAVE_BZLIB_H 00006 #include <bzlib.h> 00007 #endif //HAVE_BZLIB 00008 00009 00010 class Fichier 00011 { 00012 virtual void Ferme()=0; 00013 protected: 00014 char* nom_fichier; 00015 public: 00016 Fichier(); 00017 virtual ~Fichier(); 00018 virtual bool Ouvre(const char*,const char*)=0; 00019 virtual char GetChar()=0; 00020 virtual void UnGetChar()=0; 00021 virtual int GetNbrLignes()=0; 00022 virtual void ErreurIci()=0; 00023 virtual char* GetExtension()=0; 00024 char* GetLine(); 00025 }; 00026 00027 class FichierClassique : public Fichier 00028 { 00029 FILE* fichier; 00030 char last_char; 00031 void Ferme(); 00032 public: 00033 FichierClassique(); 00034 ~FichierClassique(); 00035 bool Ouvre(const char*,const char*); 00036 char GetChar(); 00037 int GetNbrLignes(); 00038 void UnGetChar(); 00039 void ErreurIci(); 00040 char* GetExtension(); 00041 }; 00042 00043 #ifdef HAVE_BZLIB_H 00044 class FichierBz2 : public Fichier 00045 { 00046 BZFILE* fichier; 00047 char* attribut; 00048 char* buff; 00049 int offset; 00050 void Ferme(); 00051 void RemplitBuffer(); 00052 void Rewind(); 00053 public: 00054 FichierBz2(); 00055 ~FichierBz2(); 00056 bool Ouvre(const char*,const char*); 00057 char GetChar(); 00058 void UnGetChar(); 00059 int GetNbrLignes(); 00060 void ErreurIci(); 00061 char* GetExtension(); 00062 }; 00063 #endif //HAVE_BZLIB 00064 00065 Fichier* OuvreFichier(const char*,const char* att); 00066 00067 void erreur_ici(Fichier*); 00068 00069 00070 #endif //FIHCIER_H
1.5.8