1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| bool CChargeurFichierTexte::Charger(const char* NomFichier, char UnSeparateur, bool (* FctnTraiterLigne)(const CChargeurFichierTexte&, void*), void* Contexte)
{
const long TailleLigne = 500;
char Ligne[TailleLigne+1];
FILE* Fichier;
if ( (NomFichier == NULL) || (*NomFichier == 0) ) return false;
Fichier = fopen(NomFichier,"rt");
if (Fichier == NULL)
{
printf("Impossible d'ouvrir le fichier %s\n", NomFichier);
return false;
}
while (fgets(Ligne,TailleLigne,Fichier) != NULL)
{
long i = strlen(Ligne);
if ( (i > 0) && (Ligne[i-1] == '\n') ) Ligne[i-1] = 0;
if (Definir(Ligne,'\t'))
{
if (!FctnTraiterLigne(*this,Contexte))
{
fclose(Fichier);
puts ("La fonction FctnTraiterLigne n'a pas marché");
return false;
}
}
}
fclose(Fichier);
return true;
} |