
El Almacenamiento de datos en estructuras de datos vistas anteriormente solo se generan temporalmente, es decir, cuando termina el programa los datos se pierden. Para ello, una forma de no perderlos y recuperarlos aun cuando el programa termine es con el manejo de Archivos.
C ve cada uno de los archivos simplemente como un grupo secuenciales de bytes. Cada archivo termina con un marcador de fin de archivo o un número de bytes especificado registrado en una estructura de datos.
|
Función |
Descripción |
|
fopen() |
Abre un flujo |
|
fclose() |
Cierra un flujo |
|
Putc |
Escribe un carácter en un flujo |
|
getc() |
Lee un carácter desde un flujo |
|
fputs() |
Escribe una cadena en un flujo |
|
fgets() |
Obtiene una cadena de un flujo |
|
fseek() |
Salta al byte especificado en un flujo |
|
fprintf() |
Imprime datos con formato en un flujo |
|
fscanf() |
Lee datos con formato en un flujo |
|
eof() |
Devuelve verdadero o falso si se halla el fin del archivo. |
Los flujos dan canales de comunicación entre el archivo y el programa. Por ejemplo, el flujo de entrada estándar permite que un programa lea datos desde el teclado, el flujo de salida estándar permite que un programa imprima datos en la pantalla. Un flujo se relaciona con un archivo utilizando una operación de apertura y se desliga del archivo con una operación de cierre.
Existen 2 tipos de flujos: Texto y binarios.
El flujo de Texto se utiliza con conversiones de Caracteres. Es decir, puede no haber correspondencia entre lo que se envía al flujo y lo que se escribe en el archivo.
El flujo Binario tiene una correspondencia directa entre lo que se envía y se escribe en el archivo.
Un archivo es el grupo de información que están en una entidad física real que recibe los datos, ya sea DD o diskette.
Abrir un Archivo puede ser para varios propósitos: lectura, escritura o ambos, por lo que se utiliza la siguiente función para ello:
FILE fopen(char *f,char *modo); que es lo mismo que
fopen (Nombre del Archivo, Modo);
Los modos de Abrir al archivo se especifican en la siguiente tabla:
| Acceso |
Descripción. |
|
"r" |
Abre un archivo para lectura. El archivo debe de existir |
|
"w" |
Abre para escritura. Si el archivo no existe se crea, pero si existe se borra su información para crearla de nuevo. |
|
"a" |
Abre para escribir al final de el. Si el archivo no existe se crea. |
|
"r+" |
Abre para Escritura/Lectura. El archivo debe existir. |
|
"w+" |
Abre para Escritura/Lectura. Si el archivo no existe se crea, pero si existe su información se destruye para crearla de nuevo. |
|
"a+" |
Abre para escribir al final de el y leer. Si el archivo no existe se crea. |
|
"rb" |
Abre un archivo binario para lectura. El archivo debe existir. |
|
"wb" |
Abre un archivo binario para escritura. Si el archivo no existe se crea, pero si existe su información se destruye para crearla de nuevo. |
|
"ab" |
Se abre un archivo binario para escribir al final de el. Si el archivo no existe se crea. |
|
"rb+" |
Abre un archivo binario para lectura/Escritura. El archivo debe existir |
|
"wb+" |
Abre un archivo binario para lectura/escritura. Si el archivo no existe se crea, pero si existe su información se destruye para crearla de nuevo. |
|
"ab+" |
Abre un archivo binario para lectura y añadir. Si el archivo no existe se crea. |
Cerrar un Archivo después de trabajar es algo que debe de hacerse, si no se hace este se cierra automáticamente cuando finaliza el programa. Se cierra de la siguiente manera:
fclose(FILE *f)
Ejemplo de programa que Escribe y lee carácter por carácter de un archivo las instrucciones usadas son putc y getc. Observe el manejo de fopen y fclose en los siguientes ejemplos.
Int putc(int c, FILE*f); Escribe el carácter c en un archivo apuntado por f
Int getc(FILE *f); Devuelve el carácter leído e incrementa la posición actual del indicador del archivo, si se detecta el fin del archivo se devuelve EOF.
FILE *apuntador establece que "apuntador" es un apuntador a la estructura FILE. La forma de Escribir y leer la información por medio de strings es por medio de las instrucciones fgets y fputs. Int fputs(char *cad, FILE *f);Escribe una cadena de caracteres aun archivo apuntado por f. Int fgets(char *cad, int n, FILE *f); Lee una cadena de Caracteres.
Las instrucciones fread y fwrite se utilizan en archivos en el que se utilizan estructuras para definir la longitud de cada record. Size_t fwrite(void *buffer,size_t num_bytes,size_t n, FILE *f); Escribe n registros de longitud num_bytes desde la memoria apuntada por buffer al archivo f. Size_t fread(void *buffer,size_t num_bytes,size_t n, FILE *f); Lee n registros de num_bytes en la memoria apuntada hacia buffer desde el archivo f.
Las funciones que llevan acabo los gráficos en C es permitir generar dibujos y presentaciones de los programas en general (es decir, la forma en que lucen al usuario). Las funciones de salida dependen del adaptador y del monitor que se este utilizando. El controlador seleccionado se carga desde el disco durante la inicialización de la biblioteca de gráficos llamado initgraph(), y se necesita incluir la librería #include<graphics.h>
Void far initgraph(far *controlador, int far *modo, char far *camino)
Se carga en la memoria el controlador de gráficos correspondiente al numero determinado por el controlador. El parámetro modo apunta a un entero que especifica el modo de vídeo que van a usar las funciones de gráficos. El parámetro camino especifica el directorio donde se encuentra el controlador. Si no se especifica se busca en el directorio actual. Los archivos BGI deben de estar disponibles en el sistema ya que contienen los controladores graficos, sin embargo no es necesario preocuparse por el nombre real del archivo, ya que el controlador queda especificado solamewnte con su número, para ello graphics.h tiene varias macros para esto:
|
Macro |
Equivale a... |
|
DETECT |
0 |
|
CGA |
1 |
|
MCGA |
2 |
|
EGA64 |
4 |
|
EGAMONO |
5 |
|
IBM8514 |
6 |
|
HERCMONO |
7 |
|
ATT400 |
8 |
|
VGA |
9 |
|
PC3270 |
10 |
Al usar DETECT, initgraph() detecta automáticamente el tipo de HW de vídeo presente en el sistema y selecciona el modo de vídeo con la resolución adecuada.
Para Desactivar el modo gráfico del programa se usa la función void closegraph(void) que implica la devolución al sistema de la memoria que se utilizaba para tener los controladores y las fuentes gráficas en uso.
La Escritura en Modo Gráfico se puede llevar acabo con las funciones especiales para ello:
Void far outtext(char far *cadena de texto );
Muestra en una pantalla en modo gráfico una cadena de texto en la posición actual (en los modos gráficos no existe un cursor visible, pero la posición actual se conserva como si existiera uno invisible).
Void far outtextxy(int x,int y, char far *cad)
Escribe un texto en la posición determinada por las coordenadas x,y en la ventana gráfica.
Para Cambiar el tipo de letra se usa la función:
Void far settextstyle(int fuente, int direccion, int tamaño_car);
Establece la fuente activa que usaran las funciones de escritura de texto grafico, tambien se establece la dirección y el tamaño de los caracteres. El parametro fuente determina el tipo de fuente que se va a utilizar. Fuente puede tomar algunos de los siguientes valores:
|
MACRO |
VALOR |
TIPO FUENTE |
|
DEFAULT_FONT |
0 |
Mapa de bits 8x8. |
|
TRIPLEX_FONT |
1 |
Fuente trazada triple. |
|
SMALL_FONT |
2 |
Fuente trazada pequeña. |
|
SANS_SERIF_FONT |
3 |
Fuente trazada sans serif. |
|
GOTHIC_FONT |
4 |
Fuente trazada gótica. |
El parámetro dirección refiere a la forma de desplegarse, ya sea de izquierda a derecha o de arriba hacia abajo, se determina mediante el valor HORIZ_DIR (0) o VERT_DIR (1).
El parámetro tamaño es un multiplicador que aumenta el tamaño de los caracteres. Puede tomar valores de 0 a 10.
Cabe mencionar que las coordenadas de pantalla modo texto y gráfico cambian de la siguiente manera:
Así que tome en cuenta estas gráficas para modelar sus coordenadas al momento de escribir textos.
Si has Estudiado Bien el Capitulo Click Aqui para hacer el Examen 5
¿No Entiendes Bien Algún Concepto?... Consultalo!
¿Deseas Encontrar Algo Especifico?...Encuentralo!
Ejemplos de Gráficos y de Archivos.
Este tutorial desarrolla al 100% sus Aplicaciones con un Navegador
en 800x600
OPCIÓN ALTERNA:
Introducción@Elementos de C@Apuntadores y Arreglos@Estructuras y Uniones@Bibliografía
Archivos y Gráficos@POO1@POO2@POO3@Creditos@Presentación Principal@Menú Principal