Une classe pour faciliter le maniement des fichier (création, lecture, écriture, recherche, ...) en mode binaire ou caractère.
Source / Exemple :
#pragma once
#include "Chaine.h"
//Classe CFichier
class CFichier
{
public:
//type d'opération
typedef enum Type
{
Binaire = 0,
Caractere
}Type;
//type d'ouverture de fichier
enum Mode
{
Lecture = GENERIC_READ,
Ecriture = GENERIC_WRITE,
LectureEcriture = FILE_ALL_ACCESS
}Mode;
//type de déplacement fichier
enum Position
{
Debut = FILE_BEGIN,
Fin = FILE_END
}Position;
//type d'attributs de fichier
enum Attribut
{
Archive = FILE_ATTRIBUTE_ARCHIVE,
Cache = FILE_ATTRIBUTE_HIDDEN,
Normal = FILE_ATTRIBUTE_NORMAL,
LectureSeule = FILE_ATTRIBUTE_READONLY,
Systeme = FILE_ATTRIBUTE_SYSTEM,
Temporaire = FILE_ATTRIBUTE_TEMPORARY
}Attribut;
private:
HANDLE m_hFichier;
FILE* m_pFichier;
HANDLE m_hRecherche;
CChaine m_strNomFichier;
WIN32_FIND_DATA m_DataFichier;
Type m_Type;
public:
//constructeur et destructeur
CFichier(void);
~CFichier(void);
//ouverture et fermeture
BOOL Creer(const CChaine& strNomFichier);
BOOL Ouvrir(const CChaine& strNomFichier,int Mode);
BOOL Fermer(void);
BOOL IsOuvert(void) const;
void SetType(CFichier::Type tType);
CFichier::Type GetType(void) const;
//lecture et écriture
CChaine LireStr(int iTaille = 0);
void* Lire(size_t Taille);
int EcrireStr(const CChaine& strChaine);
int Ecrire(const void* pData, size_t Taille);
//déplacement dans le fichier
BOOL SeDeplacer(DWORD dwNbCaract) const;
BOOL SeDeplacer(int Position) const;
//routines sur les fichiers
DWORD GetTaille(void) const;
BOOL SetAttributs(int Attributs) const;
friend BOOL Copier(const CChaine& strFichier, const CChaine& strNvFichier);
friend BOOL Deplacer(const CChaine& strFichier, const CChaine& strNvFichier);
friend BOOL Supprimer(const CChaine& strFichier);
//recherche de fichier
CChaine DebutRecherche(const CChaine& strFichier);
CChaine RechercheSuivant(void);
void FinRecherche(void);
//opérations sur les chaines
friend CChaine ExtraitNom(const CChaine& strFichier);
friend CChaine ExtraitChemin(const CChaine& strFichier);
friend CChaine ExtraitExt(const CChaine& strFichier);
};
Conclusion :
Il doit sûrement rester quelques bugs, merci de me les signaler.
Cette classe utilise la classe CChaine que vous trouverez sur le site.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.