Vous êtes sur la page 1sur 13

Ficheros de Textos

CONTENIDO
Definición y declaración de fichero de texto
Apertura de ficheros de texto
Cierre de ficheros
Fin de fichero
Lectura y escritura de ficheros de texto
Recorrido de fichero

Curso 05-06. Práctica 7 1


Ficheros de Textos

Un fichero o archivo es un conjunto de datos del mismo tipo,


almacenados en un soporte externo (generalmente disco, cd,
dvd, pen-driver o cintas).
En C y atendiendo al tipo de datos se dividen en:
 Ficheros de texto

 Ficheros binarios

Ficheros de texto son aquellos en los que la información


almacenada son secuencias de caracteres, (letras, números,
símbolos, etc.) y para acceder a ellos se utilizan funciones de
lectura y escritura que manejan caracteres. Un fichero de texto
es legible por cualquier editor de caracteres, p.e. WordPad.
WordPad
Curso 05-06. Práctica 7 2
Ficheros de Textos

Declaración de ficheros de texto: (LEA vs C)


LEA C
variable_fichero: fichero de typedef FILE * Fichero;
tipo
Fichero
Esvariable_fichero;
una estructura
definida en la librería
stdio.h para el control
Declaración de ficheros de texto: (Ejemplos)
del acceso a los
LEA ficheros.
C
fcad: fichero de cadena typedef FILE * Fichero;
fenter: fichero de entero Fichero fcad;
Fichero fenter;

Curso 05-06. Práctica 7 3


Ficheros de Textos

Apertura de ficheros de texto: (LEA vs C)

LEA
abrir (nombre_fichero, modo, variable_fichero)
Observar que, en
donde modo puede tomar los valores: ent, sal, o ent/sal casos,
algunos se
escribe un único
carácter pero
encerrado entre
C comillas dobles.
variable_fichero = fopen(nombre_fichero,
modo);
donde modo puede tomar los valores: “r”, “w”, “r+” o “a”

Curso 05-06. Práctica 7 4


Ficheros de Textos

Apertura de ficheros de texto: (Ejemplos)


LEA C
f: fichero de caracter typedef FILE * Fichero;
Fichero f;
abrir ("datos.txt", ent, f = fopen ("datos.txt",
f) "r");
abrir ("datos.txt", sal, f) f = fopen ("datos.txt",
abrir ("datos.txt", "w");
fopen ( ) devuelve NULL si no f =ha podido
fopen realizar la
("datos.txt",
ent/sal, f)
apertura. Pertenece a stdio.h
En modo “r” (leer): no existe el "r+");
fichero
En modo “w” (escribir): disco f =lleno
fopeno("datos.txt",
protegido de
escritura. ¡OJO!: inicializa "a");
En modo “r+” (lectura/escritura): no existe el fichero
En modo “a” (añadir detrás): disco lleno o protegido de
Curso 05-06. Práctica 7
escritura 5
Ficheros de Textos

Cierres de Ficheros: (LEA vs C)

LEA C
cerrar (variable_fichero) fclose (variable_fichero);

Pertenece a
Cierre de Ficheros: (Ejemplos) stdio.h

LEA C
cerrar (f) fclose (f);

Curso 05-06. Práctica 7 6


Ficheros de Textos

Detección del fin de fichero: (LEA vsEs


C)lo que se conoce
como esquema de
LEA C
LECTURA ANTICIPADA
fdf (variable_fichero) feof (variable_fichero)

mientras no fdf(f) leer elemento del fichero


leer elemento del fichero while (!feof(f))
tratar elemento {
fmientras tratar elemento
leer elemento siguiente
fdf ( ) detecta el fin de } feof ( ) únicamente
fichero, con detecta el fin de
independencia de fichero tras intentar
haber realizado leer después del
previamente una último registro.
lectura
Curso 05-06.oPráctica
no 7 Pertenece a stdio.h 7
Ficheros de Textos

Lectura y escritura de ficheros de texto: (LEA vs C)

LEA
leer (nombre_variable, variable_fichero)
escribir (expresión, variable_fichero)

Número de
C caracteres a leer
Lectura/Escritura de caracteres: c= fgetc(f),
fputc(c, f)
Lectura/Escritura de cadenas: fgets(cadena, n, f),
fputs(cadena,
Pertenecen f) a
stdio.h
Lectura/Escritura con formato:
fscanf(f,“cadena_formato”,
Curso 05-06. Práctica 7 variables) 8
Ficheros de Textos

Lectura de ficheros de texto : (Ejemplos)


LEA C
c: caracter typedef FILE * Fichero;
s: cadena char c;
i: entero Cadena s;
fcar: fichero de caracter int i;
fcad: fichero de cadena Fichero f;
fent: fichero de entero Número de
Lectura de un carácter: caracteres
Lectura de un carácter: a leer
leer (c, fcar) c = fgetc (f);
Lectura de una cadena: Lectura de una cadena:
leer (s, fcad) fgets (s, MAXCAR, f)
Lectura de un número entero: Lectura de un número entero:
leer (i, fent); fscanf (f, "%d", &i);
Curso 05-06. Práctica 7 9
Ficheros de Textos

Algoritmo de recorrido de un fichero de texto : (LEA)


LEA
programa recorrido_fichero
var
r: T
f: fichero de T
prin
abrir (nombre_fichero,
ent, f)
mientras no fdf(f)
leer (r, f)
tratamiento de r
fmientras
cerrar (f)
fin
Curso 05-06. Práctica 7 10
Ficheros de Textos

Algoritmo de recorrido de un fichero de texto : (C)


C
#include <stdio.h> f = fopen (nombre_fichero,
"r");
typedef FILE * Fichero;
if ( f == NULL)
puts ("\nError al abrir el la
Observar
void main (void) fichero");
{ LECTURA
else ANTICIPADA
T r; {
Fichero f; leer r de f
while ( !feof(f) )
{
tratamiento de r
leer r de f
}
fclose (f);
}
Curso 05-06. Práctica 7 } 11
Ficheros de Textos

Algoritmo de recorrido de un fichero de texto : (Ejemplo)


LEA
programa muestra_fichero
var
c: caracter
f: fichero de caracter
prin
abrir ("datos.txt", ent, f)
mientras no fdf(f)
leer (c, f)
escribir c
fmientras
cerrar (f)
fin

Curso 05-06. Práctica 7 12


Ficheros de Textos

Algoritmo de recorrido de un fichero de texto : (Ejemplo)


C
#include <stdio.h> f = fopen ("datos.txt", "r");
typedef FILE * Fichero; if ( f == NULL)
puts ("\nError al abrir el
fichero");
void main (void) else
{ {
char c; c = fgetc (f);
Fichero f; while (!feof(f))
{
putchar (c);
c = fgetc (f);
}
fclose (f);
}
}
Curso 05-06. Práctica 7 13

Vous aimerez peut-être aussi