Professional Documents
Culture Documents
Archivos
Organizacin
Acceso
Comandos C++
Archivos de texto
Archivos binarios
DEFINICION
RECORDATORIO
EJEMPLO
FIN
Ma.Inga. Susana Beltrn
Definicin
Un archivo es un conjunto
sistematizado de informacin
homognea.
Organizacin de archivos
Se llama organizacin de archivos la
tcnica empleada para representar y
almacenar registros en archivos.
Existen tres tcnicas fundamentales:
Organizacin secuencial
Organizacin directa o al azar
Organizacin secuencial indexada
Organizacin secuencial
Organizacin directa
Archivo secuencial
indexado
Secuencial indexado
Organizacin secuencial
indexado
Areas de un archivo
secuencial indexado
MENU
Archivos en C++
RECORDATORIO
Archivos y streams
Apertura de archivos
ofstream archivo;
archivo.open ("ejemplo.bin", ios::out | ios::app |
ios::binary);
ios::in
ios::out
ios::ate
ios::app
ios::trunc
ios::binary
Modo binario
Funciones de archivos
Opciones de estado
Archivos de texto
Se organiza la
secuencia de bits de
manera de formar
caracteres.
De esta manera
funciona cin y cout,
por lo que podemos
utilizar los
operadores de
redireccin << y >>.
Lectura de archivos de
texto
// leyendo un archivo de texto
#include <iostream>
#include <fstream.h>
int main () {
char buffer[256];
ifstream ejemplo ("ejemplo.txt");
if (! ejemplo.is_open()) {
cout << "Error al abrir el archivo";
exit (1); }
while (! ejemplo.eof() ) {
ejemplo.getline (buffer,100);
cout << buffer << endl; }
return 0;}
Ma.Inga. Susana Beltrn
Archivos binarios
Archivos binarios
(ejemplo)
// readbin.cpp leyendo archivos binarios
#include <iostream>
#include <fstream.h>
tellp()
seekp()
ios::cur
ios::end
Archivos de acceso
aleatorio
MENU
EJEMPLO
void main()
{
char tecla;
do
#include <stdio.h>
{
#include <ctype.h>
clrscr();
#include <io.h>
centra(14,"Agenda Telefonica");
#include <dos.h>
gotoxy(20,17);printf("Crear.................................1");
#include <string.h>
gotoxy(20,19);printf("Altas.................................2");
#include <conio.h>
gotoxy(20,21);printf("Bajas.................................3");
struct reg
gotoxy(20,23);printf("Modificar.............................4");
{
gotoxy(20,25);printf("Consultas.............................5");
int pos,edo;
gotoxy(20,27);printf("Listado...............................6");
char nom[15],email[15],cel[15];
gotoxy(20,29);printf("Salir.................................7");
} agenda;
gotoxy(20,32);printf("Opcion...............................
void crear();
[ ]\b\b");
void altas();
tecla=getche();
void mostrar();
switch(tecla)
int file_exists(char *filename);
{
int abre_archivo(char *nombre,char *tipo);
case '1': crear();break;
void centra(int fila,char *texto);
case '2': altas();break;
case '6': mostrar();break;
}
}
while(tecla!='7');
Ma.Inga.
Susana Beltrn
}
//CENTRA
void centra(int fila,char *texto)
{
gotoxy((80strlen(texto))/2,fila);printf("%s",texto);
}
if(toupper(op)=='N')
{ //borra contenido y escribe
if(abre_archivo("C:\\AGENDA_T.txt","w+t")==1)
{ centra(40,"SE DESTRUYO EL CONTENIDO PARA
ESCRIBIR");
getch();
return;
}
}
if(toupper(op)=='E')
{ centra(40,"ACABAS DE CANCELAR");
getch();
return;
}
} //fin if
else
{ if(abre_archivo("C:\\AGENDA_T.txt","w+t")==1)
{ centra(35,"SE CREO DE MODO w+t");
getch();
return;
}
else
{ centra(24,"SE ACABA DE CREAR EL ARCHIVO");
getch();
return;
}
}
fclose(archivo);
getch();
}
//CREA ARCHIVO
void crear()
{ char op;
FILE *archivo;
clrscr();
if(file_exists("C:\\AGENDA_T.txt")==1)//si existe
{ centra(21,"EL ARCHIVO YA EXISTE");
gotoxy(18,24);printf("Abrir y escribir (r+t).........................S");
gotoxy(18,26);printf("Borrar Contenido y volver a escribir
(w+t).....N");
gotoxy(18,28);printf("Exit...........................................E");
gotoxy(18,31);printf("Elige Opcion..................................
[ ]\b\b");
op=getche();
if(toupper(op)=='S') //abre para escribir
{
if(abre_archivo("C:\\AGENDA_T.txt","r+t")==1)
{
centra(40,"EL ARCHIVO SE ABRIO PARA ESCRIBIR");
getch();
return;
}
Ma.Inga. Susana Beltrn
}
do {
fread(&agenda,sizeof(agenda),1,archivo);
if(agenda.edo==1 && !feof(archivo))
{
if(agenda.pos==p)
{ band=1;
centra(24,"Ya existe ese registro");
gotoxy(3,12);printf("Registro");
gotoxy(20,12);printf("Nombre");
gotoxy(32,12);printf("Email");
gotoxy(60,12);printf("Celular");
gotoxy(5,13);printf("%d",agenda.pos);
//ALTAS
gotoxy(20,13);printf("%s",agenda.nom);
void altas()
gotoxy(32,13);printf("%s",agenda.email);
{
gotoxy(60,13);printf("%s",agenda.cel);
int band=0,p;
getch();
clrscr();
break;
FILE *archivo;
}
archivo=fopen("C:\\AGENDA_T.txt","r+t");
}
if(archivo==NULL)
} while(!feof(archivo));
{
if(!band)
centra(24,"NO SE PUDO LEER PARA ESCRIBIR (r+t)"); { agenda.pos=p;
}
gotoxy(3,10); printf("Nombre: ");
else
scanf("%s",&agenda.nom);
{
gotoxy(3,12); printf("Email: ");
//SOLICITA ID DE REGISTRO
scanf("%s",&agenda.email);
do
gotoxy(3,14);printf("Celular: ");
{
scanf("%s",&agenda.cel);
clrscr();
agenda.edo=1;
centra(4,"AGENDA TELEFONICA");
fseek(archivo,(p-1)*sizeof(agenda),SEEK_SET);
gotoxy(3,8);printf("Introduce numero de registro: ");
fwrite(&agenda,sizeof(agenda),1,archivo);
scanf("%d",&p);
centra(24,"Acabas de ingresar nuevo numero");
}
}
while(p<=0 || p>100);
} fclose(archivo);
getch();
Ma.Inga.
Susana Beltrn
}
//MOSTRAR DATOS
void mostrar()
{
int band=0,y=10,x=0;
clrscr();
FILE *archivo;
archivo=fopen("C:\\AGENDA_T.txt","rt");
if(archivo==NULL)
{
centra(24,"NO SE ENCONTRO EL ARCHIVO DE LECTURA");
}
else
{
centra(4,"LISTADO");
do
{
fread(&agenda,sizeof(agenda),1,archivo);
if(agenda.edo==1 && !feof(archivo))
{
band=1;
gotoxy(3,7);printf("Registro");
gotoxy(20,7);printf("Nombre");
gotoxy(32,7);printf("Email");
gotoxy(60,7);printf("Celular");
gotoxy(5,y);printf("%d",x);
gotoxy(20,y);printf("%s",agenda.nom);
gotoxy(32,y);printf("%s",agenda.email);
gotoxy(60,y);printf("%s",agenda.cel);
y+=2;
//
x++;
}
x++;
}
while(!feof(archivo));
if(!band)
{
centra(24,"NO SE ENCONTRO NIONGUN DATO");
}
}
fclose(archivo);
getch();
}
//EXISTE
int file_exists(char *filename)
{
int existe;
if(access(filename,0)==0)
{
existe=1;
}
return(existe);
}
//ABRE ARCHIVO
El alumno debe
desarrollar los mdulos
de consulta y modificar
MENU
FIN
Ma.Inga. Susana Beltrn