Section courante

A propos

Section administrative du site

FTELL

Dire la position dans le fichier
Langage C 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.

Algorithme

MODULE FTELL(stream)
   SI stream est NULL ALORS
      RETOURNE erreur "Flux non valide"
   FIN SI

   * Vérifier si le flux est ouvert en lecture ou écriture :
   SI le flux n'est pas ouvert correctement ALORS
      RETOURNE erreur "Impossible d'obtenir la position"
   FIN SI

   * Obtenir la position actuelle du curseur dans le flux:
   Calculer le nombre d'octets entre le début du fichier et le curseur actuel

   SI la position est valide ALORS
      RETOURNE la position (sous forme de long int)
   SINON
      RETOURNE -1 pour indiquer une erreur
   FIN SI

Remarques

Exemple

Prenons pour acquis que le fichier «readtext.txt» est le contenu :

GGGGGGLLLLLLLAAAAAADDDDDDIIIIIRRRRR

Voici un exemple positionnement aléatoire utilisant cette fonction pour connaitre la position actuel :

Essayer maintenant !
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.     FILE * Handle = fopen("readtext.txt", "r");
  7.     if(Handle != NULL) {
  8.         char Temp[4];
  9.         int I;
  10.         Temp[3] = 0;
  11.         for(I = 0; I <= 3; I++) {
  12.             int P = (rand() % 10) * 3;
  13.             fsetpos(Handle,&P);
  14.             fread(&Temp,3,1,Handle);
  15.             int P2 = ftell(Handle);
  16.             printf("Position courante %i, passage %i, bloc lue :%s\n",P2,I,Temp);
  17.         }
  18.         fclose(Handle);
  19.     }
  20.     return 0;
  21. }

on obtiendra le résultat semblable suivant :

Position courante 6, passage 0, bloc lue :GGG
Position 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.

Dernière mise à jour : Mardi, le 28 juillet 2015