Traductor




Función ftell()

A menudo se presenta la necesidad de detectar la posición del puntero de lectura.
Ya vimos de que se trataba e puntero, (clic aquí para recordar), y también aprendimos a rebobinarlo al principio del fichero con la función rewind().
Además el puntero es capaz de indicarnos si se ha alcanzado el final del fichero mediante la función feof().
Pues, con esta función ftell(),  nos permite obtener la posición de puntero en cualquier momento de la lectura.
ftell() recibe como argumento el manejador con el que se abrió el fichero.
Veamos un ejemplo:
<?php
// Se define el salto de línea
    define ("salto","<br>\n");
// Se abre el archivo para su lectura.
    $manejador=fopen("lecturaSimple.txt","r");
// Mientras no se alcance el final del fichero
    while(!feof($manejador)){
// Se lee un caracter.
        $caracter=fgetc($manejador);
// Se obtiene la posición del puntero.
        $posicion=ftell($manejador);
/* Se comprueba si se ha leido un carácter.
Esto se hace para no tratar la marca de final
de fichero como un carácter.*/
        if ($caracter){
// Se muestra el carácter y la posición que ocupa.
            echo ("El carácter en la posición ");
            echo("<b>$posicion</b> es \"<b>");
            echo("$caracter</b>\"".salto);
        }
    }
// Se cierra el fichero.
    fclose ($manejador);
?>
Recuerde que necesita el fichero de texto plano lecturaSimple.txt, el cual solamente contiene un párrafo de texto plano.
Observe la linea donde se emplea ftell() para determinar la posición del puntero de lectura. 
Corra el script y observe cómo se muestra en la página el recorrido de puntero, junto con el caracter que tiene el fichero en cada posición.
También fíjese en otra cosa:
  • En este código hemos hecho la identificación de la posición del puntero después de leer un caracter dentro del bucle.
  • Fíjese en la disposición de las líneas de código, en cada iteración del bucle:
    1. leemos un carácter (con lo que se produce un desplazamiento del puntero).
    2. luego vemos su posición
  • Al ejecutar el código, la primera disposición que aparece corresponde al uno.
Esto es así por que, en realidad, el primer caracter es cero, pero debido a que la detección del caracter se hace después del leer el caracter, si el uso de ftell() estuviera antes de la lectura de cada caracter, las posiciones aparecerían numeradas de 0 a 27, en lugar de hacerlo de 1 a 28.

Si te hemos ayudado : )

Te agradeceríamos que apoyaras este proyecto



No se te olvide Comentar y Compartir
en:
                          

0 comentarios:

Publicar un comentario