Está en la página 1de 20

TC1017

Solucin de problemas con


programacin

Archivos de texto
ITESM Campus Quertaro
La sesin pasada vimos

Cadenas de
caracteres o
Strings
Archivos
Un archivo es una coleccin de informacin que
almacenamos en memoria secundaria (Disco duro, CD,
USB Flash Memory, etc.), para poder manipularla en
cualquier momento.

En C existen dos tipos de archivos :


Texto
Binarios
Pasos para manipular un
Archivo
Abrir el archivo fsico

Si el archivo fsico existe, procesar:


Escribir
Leer
Modificar

Cerrar el archivo fsico


Archivos de texto
Todo dato (valor) almacenado en un archivo de texto
puede ser recuperado en cualquier momento.

Los archivos de texto pueden ser ledos caracter


por caracter o con formato de lectura.

La lectura formateada de un archivo de texto


incluye: enteros, flotantes, cadenas de caracteres
y caracteres.
Archivos de texto
El procesamiento de archivos se
realiza a travs de un buffer o
memoria intermedia. Que no es
ms que una variable temporal.

Un archivo se puede crear,


destruir, escribir o leer.
Manipulacin de archivos
de texto
C permite leer y escribir datos de un archivo de texto de las
siguientes formas:

Los datos pueden ser escritos y ledos carcter por caracter con
las funciones fputc ( ) y fgetc ( ).

Escritura: fputc(buffer, arch);

Lectura: buffer = fgetc(arch);

buffer es una variable de tipo char que almacenar el


carcter leido del archivo.
arch es el nombre lgico del archivo.
Manipulacin de archivos
de texto
Los datos pueden ser escritos y ledos como cadenas de
caracteres con las funciones fputs ( ) y fgets ( ).

Escritura: fputs(buffer, arch);

Lectura: fgets(buffer, n, arch);

buffer es una cadena de caracteres que almacenar una lnea


del archivo, n es el nmero -1 de caracteres a leer.
arch es el nombre lgico del archivo.
Manipulacin de archivos
de texto
Los datos pueden ser escritos y ledos con formato con las
funciones fprintf ( ) y fscanf ( ).

Escritura: fprintf(arch, formato, argumento);

Lectura: fscanf(arch, formato, argumento);

Donde arch es el nombre lgico del archivo.

El formato especifica como va ha ser la salida.

El argumento representa el valor o los valores a escribir.


Abrir un archivo de texto

FILE *arch;
arch=fopen (path,
modo)
Esta funcin abre un archivo especificado por path.

El argumento modo especifica cmo es abierto el


archivo.

Donde arch, es el nombre lgico del archivo.


Modo de Descripcin
Acceso
Abrir un archivo para leer. Si el archivo no
r existe o no se encuentra ocurre un error
Abrir un archivo para escribir. Si el archivo
no existe, se crea; y si existe, su
w contenido se destruye para ser creado de
nuevo.
Abrir un archivo para aadir informacin al
a final del mismo. Si el archivo no existe, se
crea.
Abrir un archivo para leer y escribir. El
r+ archivo debe existir.
Abrir un archivo para leer y escribir. Si el
archivo no existe, se crea; y si existe, su
w+ contenido se destruye para ser creado de
nuevo.
Abrir un archivo para leer y aadir. Si el
a+ archivo no existe, se crea.
Cerrar un archivo de
texto

fclose
(archivo_lgico)
Esta funcin cierra el archivo.

Se utiliza el nombre del archivo lgico para


cerrar el archivo fsico.
Algunas constantes
tiles
EOF Carcter que indica fin de
archivo.
NULL Constante para validar si el
archivo no se pudo crear o
abrir.
Actividad Grupal
Escribir el algoritmo para leer un archivo de texto
caracter por caracter y mostrar su contenido en
pantalla. Posteriormente crear un programa que ilustre
el problema planteado
Algoritmo
0. Declarar las variables necesarias

1. Abrir el archivo de texto con modo lectura


2. Si el archivo existe
2.1 Leer caracter
2.2 Mientras carcter no sea fin de archivo
2.2.1 Imprimir el carcter
2.2.2 Leer un carcter del archivo
2.3 Cerrar el archivo
3. De lo contrario
Error El archivo no existe

4. Terminar el programa
int main ()
Program
{
FILE *archivo; //nombre lgico del archivo a
char letra;

archivo=fopen("c:/prueba.txt", "r"); //abrir el archivo con modo lectura

if(archivo != NULL) //verificar si el archivo existe y se puede leer


{

letra=fgetc(archivo); //lee un carcter del archivo


while(letra != EOF) //con este ciclo se leer un caracter
{ //del archivo y se desplegar en pantalla
printf("%c",letra);
letra=fgetc(archivo);
}
fclose(archivo); //todo archivo se debe cerrar
}
else
printf("Error, el archivo no existe o no se encuentra");
printf("\n\n");
system("PAUSE"); //Frena la ejecucin del programa
}
Actividad Grupal
Escribir el algoritmo para escribir una frase dada
por el usuario dentro de un archivo de texto
(caracter por caracter). Posteriormente crear un

programa que ilustre el problema planteado.


Algoritmo
0. Declarar las variables necesarias

1. Abrir el archivo de texto con modo escritura

2. Si el archivo fue abierto


2.1 Pedir un mensaje
2.2 Mientras no sea el fin del mensaje
2.2.1 Escribir el carcter en la posicin
contador en el archivo
2.2.2 Incrementar el contador
2.3 Cerrar el archivo

3. De lo contrario
Error El archivo no existe
int main () Program
{
FILE *archivo;
char cadena[81];
//nombre lgico del archivo a
int i=0;

archivo=fopen("c:/prueba2.txt", "w"); //abrir el archivo con modo escritura

if(archivo != NULL) //verificar si el archivo existe y se puede escribir


{
printf("Escribe el mensaje a guardar en el archivo (mx. 80 cars.):\n");
gets(cadena);
while(cadena[i] != \0) //con este ciclo se leer un caracter de la
{ //cadena y se escribir en el archivo
fputc(cadena[i], archivo);
i++;
}
fclose(archivo); //todo archivo se debe cerrar
}
else
printf("Error, el archivo no existe o no se encuentra");
printf("\n\n");
system("PAUSE"); //Frena la ejecucin del programa
}
Actividad
colaborativa
(5 minutos)
Escribir el algoritmo requerido para contar el nmero
de caracteres que tiene un archivo de texto.
Posteriormente crear un programa que ilustre el
problema planteado.

También podría gustarte