FTELL |
Dire la position dans le fichier |
---|---|
Langage C++ | cstdio (stdio.h) |
Syntaxe
long ftell(FILE *ptrfichier) |
Paramètres
Nom | Description |
---|---|
ptrfichier | Ce paramètre permet d'indiquer l'identificateur de fichier |
Description
Cette fonction permet de connaître la position du pointeur de fichier.
Remarques
- La fonction ftell() renvoie la valeur actuelle de l'indicateur de position de fichier pour le flux de données spécifié. Dans le cas des flux de données binaires, la valeur est le nombre d'octets de l'indicateur depuis le début du fichier. Pour les flux de texte, la valeur de retour peut ne pas être significative, sauf en tant que paramètre de fseek() en raison de la conversion de caractères possibles, telles que le retour de chariot et le saut de ligne étant substitué aux sauts de ligne, affectant la taille apparente du fichier.
- La fonction ftell() renvoie -1 lorsqu'une erreur se produit. Si le flux de données est incapable de recherches aléatoires - s'il s'agit d'un modem, par exemple - la valeur de retour n'est pas définie.
Exemple
Prenons pour acquis que le fichier «readtext.txt» est le contenu :
GGGGGGLLLLLLLAAAAAADDDDDDIIIIIRRRRRVoici un exemple positionnement aléatoire utilisant cette fonction pour connaitre la position actuel :
Essayer maintenant !
- #include <iostream>
- #include <cstdio>
- #include <cstdlib>
-
- int main()
- {
- FILE * Handle = fopen("readtext.txt", "r");
- if(Handle != NULL) {
- char Temp[4];
- int I;
- Temp[3] = 0;
- for(I = 0; I <= 3; I++) {
- fpos_t P;
- P.__pos = (rand() % 10) * 3;
- fsetpos(Handle,&P);
- fread(&Temp,3,1,Handle);
- int P2 = ftell(Handle);
- std::cout << "Position courante " << P2 << ", passage " << I << ", bloc lue :" << Temp << std::endl;
- }
- fclose(Handle);
- }
- return 0;
- }
on obtiendra le résultat semblable suivant :
Position courante 6, passage 0, bloc lue :GGGPosition courante 24, passage 1, bloc lue :DDD
Position courante 15, passage 2, bloc lue :LAA
Position courante 3, passage 3, bloc lue :GGG
Voir également
Langage de programmation - C++ - Référence de procédures et fonctions - fgetpos
Langage de programmation - C++ - Référence de procédures et fonctions - fseek
Langage de programmation - C++ - Référence de procédures et fonctions - fsetpos
Langage de programmation - C++ - Référence de procédures et fonctions - rewind
Langage de programmation - C - Référence de procédures et fonctions - ftell
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 732.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 118.