Instituto Técnico “Jesús Obrero” 4to año Programación Profesor: … · 2012. 4. 29. ·...
Transcript of Instituto Técnico “Jesús Obrero” 4to año Programación Profesor: … · 2012. 4. 29. ·...
![Page 1: Instituto Técnico “Jesús Obrero” 4to año Programación Profesor: … · 2012. 4. 29. · Estructura de datos dinámica y homogénea, compuesta por una colección de registros](https://reader035.fdocuments.co/reader035/viewer/2022071218/6052dd8660485b468d47acc3/html5/thumbnails/1.jpg)
Instituto Técnico “Jesús Obrero”
4to año – Programación
Profesor: Luis Vallenilla
![Page 2: Instituto Técnico “Jesús Obrero” 4to año Programación Profesor: … · 2012. 4. 29. · Estructura de datos dinámica y homogénea, compuesta por una colección de registros](https://reader035.fdocuments.co/reader035/viewer/2022071218/6052dd8660485b468d47acc3/html5/thumbnails/2.jpg)
Archivos en Lenguaje C
Definición
Prof. Luis Vallenilla
Estructura de datos dinámica y homogénea,
compuesta por una colección de registros del
mismo tipo y almacenada en dispositivos de
almacenamiento secundarios (diskettes, disco
duros, pendrivers, entre otros). Solo almacenan
datos, no los procesan.
Representación Gráfica
![Page 3: Instituto Técnico “Jesús Obrero” 4to año Programación Profesor: … · 2012. 4. 29. · Estructura de datos dinámica y homogénea, compuesta por una colección de registros](https://reader035.fdocuments.co/reader035/viewer/2022071218/6052dd8660485b468d47acc3/html5/thumbnails/3.jpg)
Archivos en Lenguaje C
Ciclo de trabajo de un Archivo
Prof. Luis Vallenilla
![Page 4: Instituto Técnico “Jesús Obrero” 4to año Programación Profesor: … · 2012. 4. 29. · Estructura de datos dinámica y homogénea, compuesta por una colección de registros](https://reader035.fdocuments.co/reader035/viewer/2022071218/6052dd8660485b468d47acc3/html5/thumbnails/4.jpg)
Archivos en Lenguaje C
Elementos de un archivo
Prof. Luis Vallenilla
Luis16599375
María16588777
Registro
Registro
0
1
Posición
Punterodel
Archivo
Cliente (alias por el que se maneja el archivo en el programa “dirección lógica”)
C:\Mis documentos\clientes.dat Dirección física del archivo
![Page 5: Instituto Técnico “Jesús Obrero” 4to año Programación Profesor: … · 2012. 4. 29. · Estructura de datos dinámica y homogénea, compuesta por una colección de registros](https://reader035.fdocuments.co/reader035/viewer/2022071218/6052dd8660485b468d47acc3/html5/thumbnails/5.jpg)
Archivos en Lenguaje C
Pasos para declarar un archivo
Prof. Luis Vallenilla
1.- Declarar el modelo del registro que contendrá el
archivo. Esto se realiza luego de los includes, mediante
la instrucción struct
Ejemplo:
struct cliente
{
long cedula;
char nombre[50];
char direccion [100];
char correo [20];
char telefono [20];
char fechan[20];
bool eliminado;
};
![Page 6: Instituto Técnico “Jesús Obrero” 4to año Programación Profesor: … · 2012. 4. 29. · Estructura de datos dinámica y homogénea, compuesta por una colección de registros](https://reader035.fdocuments.co/reader035/viewer/2022071218/6052dd8660485b468d47acc3/html5/thumbnails/6.jpg)
Archivos en Lenguaje C
Pasos para declarar un archivo
Prof. Luis Vallenilla
2.- Declarar como global una variable tipo FILE, la cual
será la que maneje el alias del nombre del archivo en el
programa
Sintaxis: FILE *alias;
Ejemplo
FILE * clientes;
![Page 7: Instituto Técnico “Jesús Obrero” 4to año Programación Profesor: … · 2012. 4. 29. · Estructura de datos dinámica y homogénea, compuesta por una colección de registros](https://reader035.fdocuments.co/reader035/viewer/2022071218/6052dd8660485b468d47acc3/html5/thumbnails/7.jpg)
Archivos en Lenguaje C
Operaciones básicas con archivos
Prof. Luis Vallenilla
1. Creación o Apertura
2. Agregar
3. Consultar
4. Actualizar
(eliminar/modificar)
5. Cerrar
Todas las funciones para el manejo de archivos se encuentran
dentro de la librería stdio.h
![Page 8: Instituto Técnico “Jesús Obrero” 4to año Programación Profesor: … · 2012. 4. 29. · Estructura de datos dinámica y homogénea, compuesta por una colección de registros](https://reader035.fdocuments.co/reader035/viewer/2022071218/6052dd8660485b468d47acc3/html5/thumbnails/8.jpg)
Archivos en Lenguaje C
Funciones para manejar un archivo
Prof. Luis Vallenilla
Función fopen: permite realizar la apertura del archivo así
como establecer la conexión entre la dirección física del
mismo y su alias o dirección lógica.
Sintaxis: variablearchivo = fopen (“direccionfísica”, “modo de apertura”);
Modo de apertura1.- rb2.- wb
3.- rb+
4.- ab
Operación1.- Abre el archivo sólo para lectura. Debe existir2.- Abre el archivo modo escritura. Si el archivo existe lo borra .Si no existe lo crea3.- Abre el archivo en modo lectura/escritura. Debe existir el archivo4.-Abre el archivo en modo agregar. Si el archivo existe agrega los datos al final. Si no existe lo crea
![Page 9: Instituto Técnico “Jesús Obrero” 4to año Programación Profesor: … · 2012. 4. 29. · Estructura de datos dinámica y homogénea, compuesta por una colección de registros](https://reader035.fdocuments.co/reader035/viewer/2022071218/6052dd8660485b468d47acc3/html5/thumbnails/9.jpg)
Archivos en Lenguaje C
Funciones para manejar un archivo
Prof. Luis Vallenilla
Ejemplos de apertura de una archivo
clientes = fopen (“c:\Mis documentos\Clientes.dat”,”rb”);
clientes = fopen (“c:\Mis documentos\Clientes.dat”,”wb”);
clientes = fopen (“c:\Mis documentos\Clientes.dat”,”rb+”);
clientes = fopen (“c:\Mis documentos\Clientes.dat”,”ab”);
![Page 10: Instituto Técnico “Jesús Obrero” 4to año Programación Profesor: … · 2012. 4. 29. · Estructura de datos dinámica y homogénea, compuesta por una colección de registros](https://reader035.fdocuments.co/reader035/viewer/2022071218/6052dd8660485b468d47acc3/html5/thumbnails/10.jpg)
Archivos en Lenguaje C
Funciones para manejar un archivo
Prof. Luis Vallenilla
Para realizar el proceso de apertura de un archivo se debe
realizar una validación para determinar si el archivo
existe o no. Si el archivo no existe la función fopen
devolverá un valor NULL.
![Page 11: Instituto Técnico “Jesús Obrero” 4to año Programación Profesor: … · 2012. 4. 29. · Estructura de datos dinámica y homogénea, compuesta por una colección de registros](https://reader035.fdocuments.co/reader035/viewer/2022071218/6052dd8660485b468d47acc3/html5/thumbnails/11.jpg)
Archivos en Lenguaje C
Funciones para manejar un archivo
Prof. Luis Vallenilla
Proceso de apertura de un archivo con validación (se
ejecuta una sola vez):
void aperturaarchivo()
{
clientes = fopen ("clientes1.dat","rb");
if (clientes == NULL)
clientes = fopen ("clientes1.dat","wb");
fclose(clientes);
}
Nota: El archivo se crea en la misma carpeta donde se almacena el programa
fuente
![Page 12: Instituto Técnico “Jesús Obrero” 4to año Programación Profesor: … · 2012. 4. 29. · Estructura de datos dinámica y homogénea, compuesta por una colección de registros](https://reader035.fdocuments.co/reader035/viewer/2022071218/6052dd8660485b468d47acc3/html5/thumbnails/12.jpg)
Archivos en Lenguaje C
Funciones para manejar un archivo
Prof. Luis Vallenilla
Función fclose: permite realizar el cierre de un archivo,
pasando como parámetro su alias.
Sintaxis: fclose(alias);
Ejemplo: fclose(clientes);
![Page 13: Instituto Técnico “Jesús Obrero” 4to año Programación Profesor: … · 2012. 4. 29. · Estructura de datos dinámica y homogénea, compuesta por una colección de registros](https://reader035.fdocuments.co/reader035/viewer/2022071218/6052dd8660485b468d47acc3/html5/thumbnails/13.jpg)
Archivos en Lenguaje C
Funciones para manejar un archivo
Prof. Luis Vallenilla
Función fwrite: permite agregar registros a un archivo. Un
fwrite se ejecuta luego de que se han leído cada uno de
los campos del registro y se han almacenado en una
variable tipo struct.
Sintaxis: fwrite(&varregistro, sizeof(varregistro),1,alias);
Ejemplo: fwrite(&c,sizeof(c), 1, clientes);
Variable
registro
Tamaño en
bytes del
registro
Cantidad de
registros
![Page 14: Instituto Técnico “Jesús Obrero” 4to año Programación Profesor: … · 2012. 4. 29. · Estructura de datos dinámica y homogénea, compuesta por una colección de registros](https://reader035.fdocuments.co/reader035/viewer/2022071218/6052dd8660485b468d47acc3/html5/thumbnails/14.jpg)
Archivos en Lenguaje C
Funciones para manejar un archivo
Prof. Luis Vallenilla
Ejemplo operación de Agregar en un Archivo:
void agregar(struct cliente c, int &cc)
{
clrscr();
gotoxy(30,5);
cout <<"Cedula:";
cin >> c.cedula;
titulos();
gotoxy(40,6);
cin >> c.nombre;
gotoxy(40,7);
cin >> c.direccion;
gotoxy(40,8);
cin >> c.correo;
gotoxy(40,9);
cin >> c.telefono;
gotoxy(55,10);
cin >> c.fechan;
c.eliminado = false; // EL REGISTRO EXISTE
clientes = fopen("clientes1.dat",”ab");
fwrite(&c, sizeof(c),1,clientes);
fclose(clientes);
}
void titulos ()
{
gotoxy(20,6);
cout <<"Nombre:";
gotoxy(20,7);
cout <<"Direccion:";
gotoxy(20,8);
cout <<"Correo:";
gotoxy(20,9);
cout <<"Telefono:";
gotoxy(20,10);
cout <<"Fecha de nacimiento dd/mm/aaaa:";
}
![Page 15: Instituto Técnico “Jesús Obrero” 4to año Programación Profesor: … · 2012. 4. 29. · Estructura de datos dinámica y homogénea, compuesta por una colección de registros](https://reader035.fdocuments.co/reader035/viewer/2022071218/6052dd8660485b468d47acc3/html5/thumbnails/15.jpg)
Archivos en Lenguaje C
Funciones para manejar un archivo
Prof. Luis Vallenilla
Función fread: permite extraer un registros de un archivo.
Un fread almacena en una variable registro en memoria
Ram los datos extraídos.
Sintaxis: fread(&varregistro, sizeof(varregistro),1,alias);
Ejemplo: fread(&c,sizeof(c), 1, clientes);
Nota: Luego de que se ejecuta una instrucción fread el puntero del archivo pasa
automáticamente al registro siguiente
Variable
registro
Tamaño en
bytes del
registro
Cantidad de
registros
![Page 16: Instituto Técnico “Jesús Obrero” 4to año Programación Profesor: … · 2012. 4. 29. · Estructura de datos dinámica y homogénea, compuesta por una colección de registros](https://reader035.fdocuments.co/reader035/viewer/2022071218/6052dd8660485b468d47acc3/html5/thumbnails/16.jpg)
Archivos en Lenguaje C
Funciones para manejar un archivo
Prof. Luis Vallenilla
Ejemplo operación de Consultar en un Archivo:
void consultar1(struct cliente c, int &cc)
{
clrscr();
clientes = fopen("clientes1.dat","rb");
fread(&c, sizeof(c),1,clientes);
fclose(clientes);
escribir(c);
getch();
}
void escribir (struct cliente c)
{
clrscr();
cout << "Cedula: "<< c.cedula << endl;
cout << "Nombre: "<< c.nombre << endl;
cout << "Direccion: " << c.direccion << endl;
cout << "Correo: " << c.correo << endl;
cout << "Telefono: " << c.telefono << endl;
cout << "Fecha de nacimiento dd/mm/aaaa: " <<
c.fechan << endl;
}
Nota: Observe que mediante este código siempre se consulta el primer registro
del archivo, esto debido a que al abrir el archivo el puntero se ubica en la posición
0. Para ubicar el puntero del archivo en una posición especifica se debe usar la
función fseek
![Page 17: Instituto Técnico “Jesús Obrero” 4to año Programación Profesor: … · 2012. 4. 29. · Estructura de datos dinámica y homogénea, compuesta por una colección de registros](https://reader035.fdocuments.co/reader035/viewer/2022071218/6052dd8660485b468d47acc3/html5/thumbnails/17.jpg)
Archivos en Lenguaje C
Funciones para manejar un archivo
Prof. Luis Vallenilla
Función fseek: permite ubicar el puntero del archivo en una
posición especifica del mismo.
Sintaxis: fseek(alias, sizeof(varregistro)*posicion,0);
Ejemplo: fseek(clientes, sizeof(c)*1,0); Esta línea estaría
ubicando el puntero del archivo en la posición 1 del
mismo
Modo:
desde el
principio del
archivo
![Page 18: Instituto Técnico “Jesús Obrero” 4to año Programación Profesor: … · 2012. 4. 29. · Estructura de datos dinámica y homogénea, compuesta por una colección de registros](https://reader035.fdocuments.co/reader035/viewer/2022071218/6052dd8660485b468d47acc3/html5/thumbnails/18.jpg)
Archivos en Lenguaje C
Funciones para manejar un archivo
Prof. Luis Vallenilla
Función feof: permite determinar si el puntero del archivo
ha alcanzado el final del mismo. Si encuentra el final del
archivo devuelve un valor diferente de cero y cero en
caso contrario. Es usado en la consulta masiva y
búsqueda.
Sintaxis: feof(alias);
Ejemplo: feof(clientes);
![Page 19: Instituto Técnico “Jesús Obrero” 4to año Programación Profesor: … · 2012. 4. 29. · Estructura de datos dinámica y homogénea, compuesta por una colección de registros](https://reader035.fdocuments.co/reader035/viewer/2022071218/6052dd8660485b468d47acc3/html5/thumbnails/19.jpg)
Archivos en Lenguaje C
Programa Completo
Prof. Luis Vallenilla