Leer un archivo txt

On domingo, 21 de noviembre de 2010 0 comentarios

Leer un archivo txt

Ahora la ayuda sera a como podemos leer un archivo txt.

Inicialmente, debemos de leer un archivo de text pero en el cual especificamos los caracteres a leer:

Para ellos utilizaremos la funciones siguiente:

fopen
fread
fclose

Lo que hacemos en este caso es tener un texto en el cual hemos escrito cualquier cosa, es decir, caracteres los cuales los leeremos a continuacion, consideramos leer las 10 primeros caractres lo que se considera como un espacio tambien:

Código PHP:
#include 
int main()
{
   
FILE *fichero; 
   
char nombre[10] = "Texto.txt";
   
char leer[10];
   
int i;

   
fichero = fopen( nombre, "r" );
   
printf( "Fichero: %s -> ", nombre );
   
   if( 
fichero )
      
printf( "ABIERTO\n" );
   else
   {
      
printf( "NO ABIERTO\n" );
      return 
1;
   }
   
   
fread( leer, sizeof(char), 10, fichero );

   for( 
i=0; i<10; i++ )
     
printf( "%c", leer[i] );

   if( !
fclose(fichero) )
      
printf( "\nFichero cerrado\n" );
   else
   {
      
printf( "\nError: fichero NO CERRADO\n" );
      return 
1;
   }

   return 
0;
} 








Ahora en el char leer, tenemos los 10 primeros letras o caracteres considerando el espacio y si queremos leer todo el contenido de un archivo y mostrarlo, debemos definir un char variable o un array dinamico, para este caso usamos las siguientes funciones:

fseek
ftell
rewind
malloc
free

Código PHP:
#include 

#define MAX 1000
int main()
{
    
char texto[MAX];
    
    
printf("Escribe el nombre del texto(txt): ");
    
scanf("%s",&texto);
      
    
FILE *fichero;

    
fichero = fopen( texto, "r" );
    
    if( 
fichero )
      
printf( "Se abrio el texto.\n" );
    else
    {
      
printf( "No se pudo abrir.\n" );
      return 
1;
    }
    
    
char *buffer;
    
long lSize;
    
int i;
    
    
fseek (fichero , 0 , SEEK_END);
    
lSize = ftell (fichero);
    
rewind (fichero);

    
printf("\nTamano del fichero: %d",lSize);
    
printf("\n");
    
    
buffer = (char*) malloc (sizeof(char)*lSize);
    
    
fread (buffer,1,lSize,fichero);

    for( 
i=0; i<lSize; i++ )
     
printf( "%c", buffer[i] );
     
    if( !
fclose(fichero) )
      
printf( "\nTexto cerrado\n" );
    else
    {
      
printf( "\nError: Texto NO CERRADO\n" );
      return 
1;
    }
    
    
free (buffer);

    return 
0;
} 

0 comentarios:

Publicar un comentario