[C]Modification a l'interieur d'un fichier
Fermé
Nescence
-
11 janv. 2006 à 16:31
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 15 mai 2009 à 15:38
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 15 mai 2009 à 15:38
A voir également:
- [C]Modification a l'interieur d'un fichier
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Ouvrir un fichier .bin - Guide
- Fichier host - Guide
2 réponses
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
11 janv. 2006 à 23:05
11 janv. 2006 à 23:05
Salut,
ftell te donne la position courante dans le fichier en octets depuis le debut.
Il retourne une valeur de type long il me semble et il prend en paramètre un pointeur de fichier (une structure de type FILE *).
Donc pour l'utiliser, c'est comme ça:
fseek() te sert à changer ta position courante dans le fichier.
Il ya 3 paramètres.
1 er: pointeur vers fichier
2 ème: position à atteindre
3 ème: Type de déplacement
La position à atteindre est en octet (pour info un caractère = un octet).
Pour le type de déplacement tu as le choix entre SEEK_SET, SEEK_CUR et SEEK_END
Si tu utilises SEEK_SET, fseek fera pointer le fchier vers telle position absolue (si tu mets 1 en position, tu ira au premier octet du fichier).
Avec SEEK_CUR, fseek fera pointer vers telle position relative, c'est à dire à partir de la position courante (si tu mets 1 en position et que tu es à l'octet 5, fseek fera pointer le fichier vers 6).
Avec SEEK_END, le fichier pointera vers telle position en partant de la fin.
Exemple pour connaitre la taille du fichier prout.txt dans le repertoire courant:
ftell te donne la position courante dans le fichier en octets depuis le debut.
Il retourne une valeur de type long il me semble et il prend en paramètre un pointeur de fichier (une structure de type FILE *).
Donc pour l'utiliser, c'est comme ça:
long pos; pos=ftell(file);
fseek() te sert à changer ta position courante dans le fichier.
Il ya 3 paramètres.
1 er: pointeur vers fichier
2 ème: position à atteindre
3 ème: Type de déplacement
La position à atteindre est en octet (pour info un caractère = un octet).
Pour le type de déplacement tu as le choix entre SEEK_SET, SEEK_CUR et SEEK_END
Si tu utilises SEEK_SET, fseek fera pointer le fchier vers telle position absolue (si tu mets 1 en position, tu ira au premier octet du fichier).
Avec SEEK_CUR, fseek fera pointer vers telle position relative, c'est à dire à partir de la position courante (si tu mets 1 en position et que tu es à l'octet 5, fseek fera pointer le fichier vers 6).
Avec SEEK_END, le fichier pointera vers telle position en partant de la fin.
Exemple pour connaitre la taille du fichier prout.txt dans le repertoire courant:
#include <stdio.h> int main(int argc, char **argv) { FILE *fichier; long taille; fichier=fopen("./prout.txt","r"); if (fichier!=NULL){ fseek(fichier, 0, SEEK_END); //On se positionne à la fin du fichier /*On prend la position courante (on est à la fin, donc la position == taille du fichier) */ taille=ftell(fichier); fclose(fichier); printf("prout.txt fait %d octets\n",taille) } else{ printf("Peut pas ouvrir le fichier\n"); } return 0; }
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
15 mai 2009 à 15:38
15 mai 2009 à 15:38
Attention à l'insertion, si tu as plus de 9 films il peut y avoir des souci si tu ne fait pas attention.
15 mai 2009 à 14:30
tu nous sauves la vie.