compter le nombre de char d'un fichier [c] - Programmation
Marsh Posté le 18-11-2001 à 18:41:47
vous aurez corrige de vous meme
fopen(fichier);
par fopen(fichier, "r" );
Marsh Posté le 18-11-2001 à 18:50:21
TheJackal a écrit a écrit : $i |
$i = &i bien entendu ... encore un ripage de doight sur le clavier
Marsh Posté le 18-11-2001 à 19:08:07
Qu'est-ce qui ne marche pas au juste ?
Les fichiers de plus de 64Ko par hasard ?
Marsh Posté le 18-11-2001 à 19:10:53
Fork a écrit a écrit : Qu'est-ce qui ne marche pas au juste ? Les fichiers de plus de 64Ko par hasard ? |
c ce que je me demande ...
non c des petit fichier ... html de merde ...
en fait des fois le entree = fopen(fichier,"r" )
retourne null donc ca fais planter le reste de mon mini proj
et je sais aps prkoi ... le fichier existe et a bien les droit en lecture ....
je peux pas me gourer dans le nom du fichier puisque c une fonction qui extrait les nom des fichier a partir d'un repertoire ...
Marsh Posté le 18-11-2001 à 19:17:24
je te propose l'artillerie lourde pour découvrir l'origine du bug :
int nbchar(char * fichier)
{
FILE * entree;
char i;
int temp;
entree = fopen(fichier);
if(entree==NULL)
{
printf("Erreur ouverture du fichier '%s'\n",fichier);
exit(0);
}
while (!feof(entree))
{
fread(&i,sizeof(char), 1, entree);
temp++;
if(temp<=0)
{
printf("Dépassement des capacités de la variable temp. Il faut changer de type.\n" );
exit(0);
}
}
fclose(entree);
return(temp);
}
Marsh Posté le 18-11-2001 à 19:34:57
c le entree est a null
prtant le fichier existe et a les droits en lecture ...
Marsh Posté le 18-11-2001 à 19:36:50
otb82 a écrit a écrit : c le entree est a null prtant le fichier existe et a les droits en lecture ... |
soit précis.
* quel est le chemin absolu du fichier ?
* que vaut fichier lorsque tu le passes à ta fonction ?
Marsh Posté le 18-11-2001 à 19:39:45
ah oui la question de la fonction pour la longueur du fichier ...
* utiliser fseek() pour positionner le pointeur de fichier comme relatif à la fin du fichier.
* puis appeler fgetpos() pour chopper la position du pointeur de fichier, donc la taille du fichier.
ça c'est pour la lib standard. y'a des fonctions win32 qui font ça toutes seules (plus les noms en tête).
Marsh Posté le 18-11-2001 à 19:48:57
tiens,
tu ouvres ton fichier avec des handle et tu fais
long file_length(int hand)
{
long ret,sauv;
sauv = lseek(hand,0L,SEEK_CUR);
ret = lseek(hand,0L,SEEK_END);
lseek(hand,sauv,SEEK_SET);
return(ret);
}
Marsh Posté le 18-11-2001 à 18:36:17
voila comment g code la fonction pour savoir le nbre de char qu'un fichier a, j'aimerais savoir s'il existe pas un fonction deja tte prete, car en faite elle fais partie d'un gros truc et elle marche pas a ts les coup ?! (prtt elle me parait bonne)
int nbchar(char * fichier)
{
FILE * entree;
char i;
int temp;
entree = fopen(fichier);
while (!feof(entree))
{
fread($i,sizeof(char), 1, entree);
temp++;
}
fclose(entree);
return(temp);
}
---------------
email : otb82@hotmail.com