Bonjour,
Voilà mon problème, je dois gérer des fichiers textes, mais ils peuvent être indifféremment au format UNIX ou Windows... comme tout est géré ligne par ligne, je voudrais vérifier s'ils sont sous Windows ou UNIX.
J'avais fais cette fonction pour tester :
int testUNIX(char * fname)
{
FILE *F;
int taille;
char * ligne = new char[256];
unsigned posDst = 0;
if (NULL == (F = fopen(fname, "r"))) return -1;
fseek(F, 0, SEEK_END);
taille = ftell(F);
rewind(F);
if (NULL == (fgets(ligne, taille, F))) return -1;
fclose(F);
for (posDst = 0; posDst < taille; posDst++)
{
cout<<ligne[posDst];
if (ligne[posDst] == '\n')
{
if (ligne[posDst - 1] == '\r')
return 1;
else
return 0;
}
}
return -1;
}
Je récup la taille et je fais un fgets sur la taille au acs ou la personne prenne un fichier avec une ligne enorme (ça arrive...)
Mais bon, là ça marche pas, ça me renvoie toujours 0.
J'ai toujorus pas trouvé de solution sur le net, si quelqu'un en a une....
Merci!