Archivos

Páginas: 7 (1602 palabras) Publicado: 1 de julio de 2015
Archivos
Programación estructurada

Archivos de Texto
• Los archivos pueden almacenar todo tipo de información
– Dependiendo de eso, tienen un “tipo”
– En Windows, el “tipo” de un archivo esta dicho por su extensión

• Los archivos tipo texto (.txt) son los más simples de todos
– Sólo almacenan secuencias de caracteres

• Suponga ahora el siguiente archivo shakespeare.txt:
¿Que hay en unnombre?
Eso que llamamos una rosa
Emanaría un olor tan dulce, aun teniendo otro nombre



Estructura bidimensional:
Conjunto de líneas, cada una
compuesta de caracteres

Al verlo, podemos decir que es un conjunto de caracteres, y de hecho,
este archivo tiene 3 líneas.
– Es práctico pensar en un archivo como una estructura de dos
dimensiones: líneas, cada una compuesta de un conjunto de
caracteres
¿Quehay en un nombre?\nEso que llamamos una rosa\nEmanaria un olor tan dulce, aun teniendo otro nombre

En realidad son una sola
secuencia de caracteres que
incluyen el „\n‟:

¿Y En C?
• Un archivo se parece mucho a una cadena
• Desde un programa en C se puede:
– Crear archivos
– Tomar datos del archivo y ponerlos en variables
– Modificar archivos
– Eliminar y renombrar archivos
• Todas sonoperaciones que se manejan a través de stdio.h
• Para trabajar con archivos se debe:
– Declarar una variable de tipo FILE * (un puntero a FILE)
– Esta se debe asociar con el archivo, usando la función fopen
– Se efectúan las operaciones de manejo de archivos que se desee
– Cuando se ha terminado de trabajar con el archivo se utiliza
fclose para cerrarlo

Que es un Flujo?
•Un flujo crea una región dememoria (buffer) entre el programa y el archivo en
disco
•Esto reduce los accesos a disco
•Los caracteres se leen en bloques en el buffer, o se escriben en bloques en el
disco
Flujo de salida
a b c d e f

a b c d e f
Flujo de entrada

Importante
• Un puntero de tipo FILE sirve para representar a un
archivo en un programa en C.

• Por cada archivo con el que se desee
trabajar, se declarar una variableFILE *
• Si una función va a trabajar con un archivo, puede
recibir una variable de tipo FILE *
• La variable de tipo FILE * no sirve de nada si no se la
“asocia” a un archivo a través de la función fopen:
variable de tipo FILE * = fopen (nombre de archivo, modo);

Abrir y Cerrar un Archivo
• Un archivo se puede abrir para en los siguientes modos:
– Lectura: “r”
• Para “tomar” datos del archivo.El archivo DEBE existir

– Escritura: “w”
• Para crear archivos y escribir o “mandar” datos
Sideeltrabajar
archivo
Cuandoal
searchivo.
ha terminado
con el archivo, este se cierra con
no existe, lo crea, si ya existe, lo sobre-escribe
fclose. Cuando un programa termina,
todos los archivos se cierran
embargo, es una BUENA
Para escribir o “mandar” datos a un archivoSin
que
ya existe. Si no
PRACTICA deprogramación, cerrar
existe, lo crea, si ya existe, los datos enviados
se “añaden”
los archivos
pues al revisar el código
se sabrá cuando ya no se usa mas
una archivo

– Añadir: “a”


infile = fopen (“shakespeare.txt”,”r”);
• Si la operación de “abrir” falla, por alguna razon, fopen devuelve
if(infile == NULL) {
NULL.
printf(“Error al abrir el archivo\n”);
exit(1);

}
/*trabajar con elarchivo*/
fclose(infile);

Archivos Estándar
• stdio ofrece funciones para manipulación de E/S,

– Usando los dispositivos estándar y
– Usando archivos
• Para evitar esa diferencia en las operaciones,

– stdio, trata a todos como archivos
– Incluyendo a los dispositivos de E/S estándar:
• Teclado y Monitor
• Para representar a cada “archivo de dispositivo” existen 3
identificadores especiales de tipo FILE*

– stdin: dispositivo de entrada estándar (teclado)
– stdout: dispositivo de salida estándar (el monitor)
– stderr: dispositivo de salida de errores estándar (el
monitor)

Porque stdout y stderr?
Por la redirección soportada en Unix, DOS, OS/2, etc.

#include
int main(){
printf("Escritura a stdout\n");
fprintf(stderr,"Escritura a stderr\n");
return 0;
}
c:> prog
Escritura a stdout...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Archivos
  • Archivo
  • Archivos
  • Archivo
  • Archivo
  • Archivo
  • Mis Archivos
  • Archivos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS