You are on page 1of 16

ARCHIVOS

1
/*
ARCHIVO1.CPP
Programa para almacenar caracteres en un archivo de texto
MiniTaller: Tecnicas avanzadas de programacion en Lenguaje C++
Instructor: M.C. Bruno Lopez Takeyas
*/
#include
#include
#include
#include

<stdio.h> // Para el manejo de archivos


<string.h> // Para el manejo de cadenas
<conio.h> // Para el manejo de clrscr
<iostream.h> // Para el manejo de cout

void main(void)
{
FILE *archivo; // Declaracion del alias para el archivo
char letra;
char *nombre_archivo; // Variable para capturar el nombre del archivo
clrscr();
cout << "\n\rEste programa captura caracteres del teclado y los graba
en un archivo de texto";
cout << "\n\n\n\rAnote el nombre del archivo (incluyendo la
extension) : ";
gets(nombre_archivo);
cout << "\n\n\n\rAnote un parrafo y termine con ENTER ...\n\n\n\r";
archivo=fopen(nombre_archivo,"w"); // Abre el archivo de texto
// en modo de solo escritura
// (crea el archivo)
while((letra=getche())!='\r') // Ciclo mientras el caracter capturado
sea
{
// diferente de ENTER
putc(letra,archivo); // Graba el caracter capturado en el archivo
// "putc" es la funcion para grabar un caracter en un archivo
}
fclose(archivo); // Cierra el archivo
cout << "\n\n\n\rSe creo el archivo de texto "<< nombre_archivo;
cout << " cuyo contenido puede desplegarse ";
cout << "\ncon el comando \n\n TYPE "<< nombre_archivo;
cout << "\n\n\n\r<<< Oprima cualquier tecla para continuar >>>";
getch();
return;

2
/*
ARCHIVO2.CPP
Programa para leer caracteres desde un archivo de texto
MiniTaller: Tecnicas avanzadas de programacion en Lenguaje C++
Instructor: M.C. Bruno Lopez Takeyas
*/
#include
#include
#include
#include

<stdio.h> // Para el manejo de archivos


<string.h> // Para el manejo de cadenas
<conio.h> // Para el manejo de clrscr
<iostream.h> // Para el manejo de cout

void main(void)
{
FILE *archivo; // Declaracion del alias para el archivo
char letra;
char *nombre_archivo; // Variable para capturar el nombre del archivo
clrscr();
cout << "\n\rEste programa lee caracteres de un archivo de texto y los
despliega en pantalla";
cout << "\n\n\n\rAnote el nombre del archivo (incluyendo la
extension) : ";
gets(nombre_archivo);
archivo=fopen(nombre_archivo,"r"); // Abre el archivo de texto
// en modo de solo lectura
if(archivo==NULL) // Verifica si se abrio el archivo
{
cout << "\n\n\n\rEl archivo " << nombre_archivo << " no existe !!!";
getch();
return;
}
while((letra=getc(archivo))!=EOF) // Ciclo mientras no se llegue al
final
{
// del archivo EOF
// "getc" es la funcion para leer un caracter de un archivo
cout << letra; // Despliega el caracter en pantalla
}
fclose(archivo); // Cierra el archivo

cout << "\n\n\n\r<<< Oprima cualquier tecla para continuar >>>";


getch();
return;

3
/*
ARCHIVO3.CPP
Programa para almacenar cadenas en un archivo de texto
MiniTaller: Tecnicas avanzadas de programacion en Lenguaje C++
Instructor: M.C. Bruno Lopez Takeyas
*/
#include
#include
#include
#include

<stdio.h> // Para el manejo de archivos


<string.h> // Para el manejo de cadenas
<conio.h> // Para el manejo de clrscr
<iostream.h> // Para el manejo de cout

void main(void)
{
FILE *archivo; // Declaracion del alias para el archivo
char cadena[81]; // Declaracion de la cadena de 80 posiciones
char *nombre_archivo; // Variable para capturar el nombre del archivo
clrscr();
cout << "\n\rEste programa captura cadenas del teclado y la graba en un
archivo de texto";
cout << "\n\n\n\rAnote el nombre del archivo (incluyendo la
extension) : ";
gets(nombre_archivo);
cout << "\n\n\n\rAnote mensajes y termine con ENTER ...\n\n\n\r";
archivo=fopen(nombre_archivo,"w"); // Abre el archivo de texto
// en modo de solo escritura
// (crea el archivo)
while(strlen(gets(cadena)) >
cadena
{
fputs(cadena,archivo); //
fputs("\n",archivo);
//

0) // Ciclo mientras la longitud de la


// capturada sea mayor que cero
Graba la cadena capturada en el archivo
Graba un cambio de renglon en el archivo

// "fputs" es la funcion para grabar cadenas en un archivo


}
fclose(archivo); // Cierra el archivo
cout << "\n\n\n\rSe creo el archivo de texto "<< nombre_archivo;
cout << " cuyo contenido puede desplegarse ";
cout << "\ncon el comando \n\n TYPE "<< nombre_archivo;
cout << "\n\n\n\r<<< Oprima cualquier tecla para continuar >>>";

getch();
return;

4
/*
ARCHIVO4.CPP
Programa para leer cadenas desde un archivo de texto
MiniTaller: Tecnicas avanzadas de programacion en Lenguaje C++
Instructor: M.C. Bruno Lopez Takeyas
*/
#include
#include
#include
#include

<stdio.h> // Para el manejo de archivos


<string.h> // Para el manejo de cadenas
<conio.h> // Para el manejo de clrscr
<iostream.h> // Para el manejo de cout

void main(void)
{
FILE *archivo; // Declaracion del alias para el archivo
char cadena[81]; // Declaracion de la cadena de 80 caracteres
char *nombre_archivo; // Variable para capturar el nombre del archivo
clrscr();
cout << "\n\rEste programa lee cadenas de un archivo de texto y las
despliega en pantalla";
cout << "\n\n\n\rAnote el nombre del archivo (incluyendo la
extension) : ";
gets(nombre_archivo);
archivo=fopen(nombre_archivo,"r"); // Abre el archivo de texto
// en modo de solo lectura
if(archivo==NULL) // Verifica si se abrio el archivo
{
cout << "\n\n\n\rEl archivo " << nombre_archivo << " no existe !!!";
getch();
return;
}
while(fgets(cadena,80,archivo) != NULL) // Ciclo mientras se lea una
cadena
{
// del archivo
printf("%s",cadena); // Despliega la cadena en pantalla
// "fgets" es la funcion para leer cadenas desde un archivo
}
fclose(archivo); // Cierra el archivo
cout << "\n\n\n\r<<< Oprima cualquier tecla para continuar >>>";

getch();
return;

5
/*
ARCHIVO5.CPP
Programa para almacenar variables de diversos tipos en un archivo de
texto
MiniTaller: Tecnicas avanzadas de programacion en Lenguaje C++
Instructor: M.C. Bruno Lopez Takeyas
*/
#include
#include
#include
#include

<stdio.h> // Para el manejo de archivos


<string.h> // Para el manejo de cadenas
<conio.h> // Para el manejo de clrscr
<iostream.h> // Para el manejo de cout

void main(void)
{
FILE *archivo; // Declaracion del alias para el archivo
char letra;
int entero;
float real;
char cadena[20];
char *nombre_archivo; // Variable para capturar el nombre del archivo
clrscr();
cout << "\n\rEste programa captura del teclado variables de diversos
tipos y las graba en un archivo de texto";
cout << "\n\n\n\rAnote el nombre del archivo (incluyendo la
extension) : ";
gets(nombre_archivo);
cout
cout
cout
cout

<<
<<
<<
<<

"\n\n\n\rAnote un caracter :
"\n\rAnote un numero entero:
"\n\rAnote un numero real :
"\n\rAnote una cadena
:

";
";
";
";

cin >> letra;


cin >> entero;
cin >> real;
gets(cadena);

archivo=fopen(nombre_archivo,"w"); // Abre el archivo de texto


// en modo de solo escritura
// (crea el archivo)
fprintf(archivo,"%c %d %f %s",letra,entero,real,cadena);
// "fprintf" es la funcion que permite grabar variables de diversos tipos
// en un archivo

fclose(archivo); // Cierra el archivo


cout << "\n\n\n\rSe creo el archivo de texto "<< nombre_archivo;
cout << " cuyo contenido puede desplegarse ";
cout << "\ncon el comando \n\n TYPE "<< nombre_archivo;
cout << "\n\n\n\r<<< Oprima cualquier tecla para continuar >>>";
getch();
return;
}

6
/*
ARCHIVO6.CPP
Programa para leer variables de diversos tipos desde un archivo de texto
MiniTaller: Tecnicas avanzadas de programacion en Lenguaje C++
Instructor: M.C. Bruno Lopez Takeyas
*/
#include
#include
#include
#include

<stdio.h> // Para el manejo de archivos


<string.h> // Para el manejo de cadenas
<conio.h> // Para el manejo de clrscr
<iostream.h> // Para el manejo de cout

void main(void)
{
FILE *archivo; // Declaracion del alias para el archivo
char letra;
int entero;
float real;
char cadena[20];
char *nombre_archivo; // Variable para capturar el nombre del archivo
clrscr();
cout << "\n\rEste programa lee variables de diversos tipos de un
archivo y las despliega en pantalla";
cout << "\n\n\n\rAnote el nombre del archivo (incluyendo la
extension) : ";
gets(nombre_archivo);
archivo=fopen(nombre_archivo,"r"); // Abre el archivo de texto
// en modo de solo lectura
fscanf(archivo,"%c %d %f %s",&letra,&entero,&real,&cadena);
// "fscanf" es la funcion que permite leer variables de diversos tipos
// desde un archivo
printf("\nletra=%c \nentero=%d \nreal=%f \ncadena=
%s",letra,entero,real,cadena);
fclose(archivo); // Cierra el archivo
cout << "\n\n\n\r<<< Oprima cualquier tecla para continuar >>>";

getch();
return;

/*
ARCHIVO7.CPP
Programa para grabar registros completos en un archivo secuencial y
binario
MiniTaller: Tecnicas avanzadas de programacion en Lenguaje C++
Instructor: M.C. Bruno Lopez Takeyas
*/
#include
#include
#include
#include
#include

<stdio.h> // Para el manejo de archivos


<string.h> // Para el manejo de cadenas
<conio.h> // Para el manejo de clrscr
<iostream.h> // Para el manejo de cout
<ctype.h> // Para el uso de toupper

void main(void)
{
FILE *archivo; // Declaracion del alias para el archivo
struct
{
char nombre[25]; // Nombre del empleado
char depto; // Departamento del empleado
float sueldo; // Sueldo del empleado
}EMPLEADO;
// Declaracion de una estructura (registro) de nombre EMPLEADO
// que contiene 4 campos: num, nombre, depto y sueldo
char *nombre_archivo; // Variable para capturar el nombre del archivo
clrscr();
cout << "\n\rEste programa captura del teclado los valores de los
campos de registros y los graba en un archivo secuencial y binario";
cout << "\n\n\n\rAnote el nombre del archivo (incluyendo la
extension) : ";
gets(nombre_archivo);
archivo=fopen(nombre_archivo,"wb"); // Abre el archivo
// en modo de solo escritura BINARIO
// (Crea el archivo)
do

{
clrscr();
cout << "\n\n\n\rANOTE LOS DATOS DEL EMPLEADO....\n\n\n\r";
// Capturar los datos del registro
cout << "\n\rNombre: "; gets(EMPLEADO.nombre);
cout << "\n\rDepto : "; EMPLEADO.depto=getche();
cout << "\n\rSueldo: "; cin >> EMPLEADO.sueldo;
fwrite(&EMPLEADO,sizeof(EMPLEADO),1,archivo);
// Graba el registro EMPLEADO, de tamano=sizeof(EMPLEADO) en el
archivo
// La funcion "fwrite" graba un registro completo en un archivo
// incluyendo todos sus campos
cout << "\n\n\nDesea archivar los datos de otro empleado? [S/N]
---> ";
}while(toupper(getche())=='S');
fclose(archivo); // Cierra el archivo
cout << "\n\n\n\r<<< Oprima cualquier tecla para continuar >>>";
getch();
return;
}

/*
ARCHIVO8.CPP
Programa para leer registros completos desde un archivo secuencial y
binario
MiniTaller: Tecnicas avanzadas de programacion en Lenguaje C++
Instructor: M.C. Bruno Lopez Takeyas
*/
#include
#include
#include
#include

<stdio.h> // Para el manejo de archivos


<string.h> // Para el manejo de cadenas
<conio.h> // Para el manejo de clrscr
<iostream.h> // Para el manejo de cout

void main(void)
{
FILE *archivo; // Declaracion del alias para el archivo
struct
{
char nombre[25]; // Nombre del empleado
char depto; // Departamento del empleado
float sueldo; // Sueldo del empleado
}EMPLEADO;
// Declaracion de una estructura (registro) de nombre EMPLEADO
// que contiene 4 campos: num, nombre, depto y sueldo
char *nombre_archivo; // Variable para capturar el nombre del archivo
clrscr();
cout << "\n\rEste programa lee registros completos de un archivo
secuencial";
cout << "\n\n\n\rAnote el nombre del archivo (incluyendo la
extension) : ";
gets(nombre_archivo);
archivo=fopen(nombre_archivo,"rb"); // Abre el archivo
// en modo de solo lectura BINARIO
if(archivo==NULL)
{

// Verifica si se abrio el archivo

cout << "\n\n\n\rEl archivo " << nombre_archivo << " no existe !!!";
getch();
return;
}
clrscr();
cout << "\n\r*** DATOS DEL EMPLEADO ***";
cout << "\n\rNOMBRE DEPTO
SUELDO";
cout << "\n\r=====================================================";
do
{

fread(&EMPLEADO,sizeof(EMPLEADO),1,archivo); // Lee el registro del


archivo
// La funcion "fread" lee el registro EMPLEADO, de
tamano=sizeof(EMPLEADO)
// del archivo
cout <<
"\n\r"<<EMPLEADO.nombre<<"\t"<<EMPLEADO.depto<<"\t"<<EMPLEADO.sueldo;
}while(!feof(archivo));
// Este ciclo "while" lee secuencialmente los resgitros (uno por uno)
hasta
// encontrar el final del archivo
fclose(archivo); // Cierra el archivo

cout << "\n\n\n\r<<< Oprima cualquier tecla para continuar >>>";


getch();
return;

/*
ARCHIVO9.CPP
Programa para grabar registros completos en un archivo de acceso directo
y binario
MiniTaller: Tecnicas avanzadas de programacion en Lenguaje C++
Instructor: M.C. Bruno Lopez Takeyas
*/
#include
#include
#include
#include
#include

<stdio.h> // Para el manejo de archivos


<string.h> // Para el manejo de cadenas
<conio.h> // Para el manejo de clrscr
<iostream.h> // Para el manejo de cout
<ctype.h> // Para el uso de toupper

void main(void)
{
FILE *archivo; // Declaracion del alias para el archivo
struct
{
int num;
// Numero de empleado
char nombre[25]; // Nombre del empleado
char depto; // Departamento del empleado
float sueldo; // Sueldo del empleado
}EMPLEADO;
// Declaracion de una estructura (registro) de nombre EMPLEADO
// que contiene 4 campos: num, nombre, depto y sueldo
char *nombre_archivo; // Variable para capturar el nombre del archivo
long int dir; // Variable para calcular la direccion fisica de un
registro
clrscr();
cout << "\n\rEste programa captura del teclado los valores de los
campos de registros y los graba en un archivo binario de acceso directo";
cout << "\n\n\n\rAnote el nombre del archivo (incluyendo la
extension) : ";
gets(nombre_archivo);
archivo=fopen(nombre_archivo,"wb"); // Abre el archivo
// en modo de solo escritura BINARIO
// (Crea el archivo)

do
{

clrscr();
cout << "\n\n\n\rANOTE LOS DATOS DEL EMPLEADO....\n\n\n\r";
// Capturar los datos del registro
cout << "\n\rNum
: "; cin>>EMPLEADO.num;
cout << "\n\rNombre: "; gets(EMPLEADO.nombre);
cout << "\n\rDepto : "; EMPLEADO.depto=getche();
cout << "\n\rSueldo: "; cin >> EMPLEADO.sueldo;

del

dir=EMPLEADO.num*sizeof(EMPLEADO); // Calcula la direccion fisica


// registro, utilizada para posicionarse en el renglon indicado por

el

// numero del empleado (EMPLEADO.num)


fseek(archivo,dir,SEEK_SET);
// La funcion "fseek" se usa para posicionarse en una direccion
especifica
// del archivo
fwrite(&EMPLEADO,sizeof(EMPLEADO),1,archivo);
// Graba el registro EMPLEADO, de tamano=sizeof(EMPLEADO) en el
archivo
// La funcion "fwrite" graba un registro completo en un archivo
// incluyendo todos sus campos
cout << "\n\n\nDesea archivar los datos de otro empleado? [S/N]
---> ";
}while(toupper(getche())=='S');
fclose(archivo); // Cierra el archivo

cout << "\n\n\n\r<<< Oprima cualquier tecla para continuar >>>";


getch();
return;

/*
ARCHIV10.CPP
Programa para leer registros completos desde un archivo de acceso
directo
y binario
MiniTaller: Tecnicas avanzadas de programacion en Lenguaje C++
Instructor: M.C. Bruno Lopez Takeyas
*/
#include
#include
#include
#include
#include

<stdio.h> // Para el manejo de archivos


<string.h> // Para el manejo de cadenas
<conio.h> // Para el manejo de clrscr
<iostream.h> // Para el manejo de cout
<ctype.h> // Para el uso de toupper

void main(void)
{
FILE *archivo; // Declaracion del alias para el archivo
struct
{
int num;
// Numero de empleado
char nombre[25]; // Nombre del empleado
char depto; // Departamento del empleado
float sueldo; // Sueldo del empleado
}EMPLEADO;
// Declaracion de una estructura (registro) de nombre EMPLEADO
// que contiene 4 campos: num, nombre, depto y sueldo
char *nombre_archivo; // Variable para capturar el nombre del archivo
long int dir; // Variable para calcular la direccion fisica de un
registro
int num;
clrscr();
cout << "\n\rEste programa captura del teclado el Numero del Empleado
que se desea consultar";
cout << "\n\n\n\rAnote el nombre del archivo (incluyendo la
extension) : ";
gets(nombre_archivo);
archivo=fopen(nombre_archivo,"rb"); // Abre el archivo

// en modo de solo lectura BINARIO


do
{

clrscr();
cout << "\n\n\n\rANOTE EL NUMERO DEL EMPLEADO QUE SE DESEA
CONSULTAR....\n\n\n\r";
// Capturar el numero de empleado que se desea consultar
cout << "\n\rNum
: "; cin>>num;
dir=num*sizeof(EMPLEADO); // Calcula la direccion fisica del
// registro, utilizada para posicionarse en el renglon indicado por
el

// numero del empleado (num)

fseek(archivo,dir,SEEK_SET);
// La funcion "fseek" se usa para posicionarse en una direccion
especifica
// del archivo
fread(&EMPLEADO,sizeof(EMPLEADO),1,archivo);
// Lee el registro EMPLEADO, de tamano=sizeof(EMPLEADO) en el
archivo
// La funcion "fread" lee un registro completo de un archivo
// incluyendo todos sus campos
cout
cout
cout
cout

<<
<<
<<
<<

"\n\rNum
:
"\n\rNombre:
"\n\rDepto :
"\n\rSueldo:

"<<EMPLEADO.num;
"<<EMPLEADO.nombre;
"<<EMPLEADO.depto;
"<<EMPLEADO.sueldo;

cout << "\n\n\nDesea consultar los datos de otro empleado? [S/N]


---> ";
}while(toupper(getche())=='S');
fclose(archivo); // Cierra el archivo

cout << "\n\n\n\r<<< Oprima cualquier tecla para continuar >>>";


getch();
return;

11
/*
Programa para graficar el escudo del Tec, grabarlo en un archivo para
cargarlo y desplegarlo posteriormente
MiniTaller: Tecnicas avanzadas de programacion en Lenguaje C++
Instructor: M.C. Bruno Lopez Takeyas
*/
#include
#include
#include
#include
#include
#include
#include

<graphics.h> // Encabezado con declaraciones de graficos


<conio.h>
<stdio.h>
<iostream.h>
<alloc.h> // Para usar la funcion farmalloc
<string.h>
<tec.h> // Encabezado desarrollado por el programador con el
// codigo fuente de los escudos del Tec y de ISC

void main(void)
{
int monitor=DETECT, modo; // Declaracion de tipo de monitor y modo
// Automaticamente detecta el tipo de monitor
char *archivo; // Para capturar el nombre del archivo
long tamano; // Variable para calcular el tamao en bytes de la imagen
que
// se desea archivar
char far *imagen; // Variable para capturar en memoria la imagen que se
desea
// archivar
FILE *alias_archivo;
int columna,renglon;
initgraph(&monitor,&modo,"\\tc\\bgi");
// Inicializa el modo grafico indicando el monitor y modo utilizado
// El subdirectorio \\tc\\bgi indica la ruta de localizacion de los
// archivos *.BGI (monitores) y *.CHR (tipos de letras)
TEC(320,200); //Escudo del Tec en columna=320 y renglon=200
setlinestyle(DOTTED_LINE,1,1);
rectangle(250,130,390,270);

gotoxy(1,19); cout << "Anote el nombre del archivo (incluyendo la


extension): ";
gets(archivo);
// Capturar el nombre del archivo
tamano = (long int)imagesize(250,130,390,270); // Calcula el tamao de

la

// imagen que se desea archivar


imagen = (char far *) farmalloc(tamano); //Reserva la memoria
suficiente
getimage(250,130,390,270,imagen); // Cargar en memoria la imagen que
// contiene el cuadro de las coordenadas indicadas
alias_archivo=fopen(archivo,"wb"); // Crear el archivo con el nombre
capturado
fwrite(imagen,1,tamano,alias_archivo); // Graba en el archivo la imagen
// cargada en memoria
fcloseall(); // Cierra el archivo
cout << "\n\ntamao=" << tamano << " bytes";
cout << "\nOprima cualquier tecla para limpiar la pantalla y cargar la
imagen";
getch();
clearviewport(); // Limpia la pantalla en modo grafico
alias_archivo=fopen(archivo,"rb"); // Abre el archivo en modo de solo
lectura
fread(imagen,1,tamano,alias_archivo); // Lee desde el archivo la imagen
fcloseall(); // Cierra el archivo
cout << "\nAnote las coordenadas donde desea desplegar la imagen ...";
cout << "\n\nColumna="; cin >> columna;
cout << "\n\nRenglon="; cin >> renglon;
putimage(columna,renglon,imagen,1); // Coloca en pantalla la imagen
// cargada del archivo en las coordenadas especificadas
getch();
closegraph(); // Termina el modo grafico (vuelve a su modo normal)
return;
}

You might also like