Está en la página 1de 20

Archivos

de
texto y binario

Lic. Jonathan G. Pécora


Leer

Archivo

Escribir

Lic. Jonathan G. Pécora


Leer

Archivo

Escribir Flujo
En C, lo
encontramos
en Stdio.h

Corriente
de datos
Canal o Streams
Estandarizado
por ANSI C
Lic. Jonathan G. Pécora
Leer

Archivo
Flujo

En C, lo Escribir
encontramos
en Stdio.h

Abierto Cerrado

Canal o Streams
Estandarizado
por ANSI C
Lic. Jonathan G. Pécora
Tipos de archivos
Clasificación por la forma de acceso
Archivos

Archivo

Secuenciales Acceso Directo Indexados

Lic. Jonathan G. Pécora


Archivo Secuencial. Apertura

Modos de Apertura

Lic. Jonathan G. Pécora


Archivo Secuencial. Apertura

Puntero a la Estructura FILE

FILE *archivo;
char ch;
char* nombre="texto99.txt";// nombre fisico del archivo
if((archivo=fopen(nombre,"w"))==NULL)

Establecemos si es para leer,


Función para abrir un archivo Si es de texto o Binario
escribir, etc,

Lic. Jonathan G. Pécora


Archivo Secuencial. Apertura (Posible implementación)
#include<stdio.h>
#include<conio.h>
#define p printf
#define s scanf
// Ingresar caracteres en un archivo hasta [Enter]
//verificar el archivo con el bloc de notas
int main(){
FILE *archivo;
char ch;
char* nombre="texto99.txt";// nombre fisico del archivo
if((archivo=fopen(nombre,"w"))==NULL)
p("\n\n***El archivo %s no pudo abrirse ***\n",nombre);
else{
p("\n\n Ingrese caracteres hasta [Enter] ");
while((ch=getchar())!='\n')
putc(ch,archivo); // almacena en el archivo hasta [ENTER]
fclose(archivo) ;
}
}

Lic. Jonathan G. Pécora


Archivo Secuencial. Lectura (Posible implementación)
#include<stdio.h>
#include<conio.h>
#define p printf
#define s scanf
int main()
{
FILE *archivo;
char ch;
char* nombre="texto99.txt";// nombre fisico del archivo
if((archivo=fopen(nombre,"w"))==NULL)
p("\n\n***El archivo %s no pudo abrirse ***\n",nombre);
else
{
p("\n\n Este es el contenido del archivo %s caracter a
caracter\n\n",nombre);
while((ch=getc(archivo))!=EOF)
p("%c",ch);
fclose(archivo) ;
}
}
Lic. Jonathan G. Pécora
Archivo Secuencial. Lectura (Posible implementación)
#include<stdio.h>
#include<conio.h>
#define p printf
#define s scanf
// Lee caracteres almacenados en texto01.txt
//los muestra caracter a caracter y por linea
int main(){
FILE *archivo;
char ch, cadena[81];
char* nombre="F:\\Textos\\texto91.txt";// nombre fisico del archivo
if((archivo=fopen(nombre,"r"))==NULL)
p("\n\n***El archivo %s no pudo abrirse ***\n",nombre);
else{
while(fgets(cadena,81,archivo) ) // Almacena en un cadena !=NULL) hasta \n n-1 o salto de linea
p("%s",cadena);
p("\n\n**FIN**\n"); getch();
fclose(archivo);
}
return(0);
}
Lic. Jonathan G. Pécora
Archivo Binario. Acciones posibles

Lic. Jonathan G. Pécora


Archivo Binario. Apertura

Modos de Apertura

La diferencia radica que aquí


tenemos que poner b de Binario

Lic. Jonathan G. Pécora


Archivo Binario. Apertura
FILE *cli;
char *nomarchcli =
"F:\\ARCHIVOS_PRUEBA\\clientes.dat";
system("cls");
if ((cli = fopen(nomarchcli, "rb+")) == NULL)

La diferencia radica que aquí


Modos de Apertura
tenemos que poner b de Binario

Lic. Jonathan G. Pécora


Archivo Binario. función fwrite
fwrite(&c, sizeof(c), 1, x);

fwrite(&c, sizeof(c), 1, x);


Lic. Jonathan G. Pécora
Archivo Binario. función fread
fread(&c, sizeof(c), 1, x);

fread(&c, sizeof(c), 1, x);


Lic. Jonathan G. Pécora
Archivo Binario. función fseek
fseek(x, 0L, SEEK_SET);

Lic. Jonathan G. Pécora


Ejemplo: Archivo Binario (Parte 1 de 3)
FILE *cli;
char *nomarchcli = "F:\\ARCHIVOS_PRUEBA\\clientes.dat";
system("cls");
if ((cli = fopen(nomarchcli, "rb+")) == NULL){
cli = fopen(nomarchcli, "wb+");
p("\nEl archivo %s ha sido Abierto nuevo!!", nomarchcli);
}
else{
p("\nEl archivo %s ha sido Abierto para lectura escritura!!", nomarchcli);
}

Lic. Jonathan G. Pécora


Ejemplo: Archivo Binario (Parte 2 de 3)
void IngresoClientes(FILE *x){
regcli c;
int cod;
// Inicializar los archivos de Registros
p("\nIngrese codigo del empleado[0-para salir]:");
s("%d", &cod);
while (cod){
fflush(stdin);
fseek(x, 0L, SEEK_END);
c.cod_cli = cod;
p("\nIngrese nombre:");
gets(c.nom_cli);
c.cuenta = 0;
fwrite(&c, sizeof(c), 1, x);
fflush(stdin);
p("\nIngresar codigo del empleado[0-para salir]:");
s("%d", &cod);
}
}

Lic. Jonathan G. Pécora


Ejemplo: Archivo Binario (Parte 3 de 3)
void mostrar(FILE *x){
regcli c;
fseek(x, 0L, SEEK_SET);
system("cls");
p("\n\n\t\t\t Nomina de Clientes\n");
linea(80);
p("\nCodigo\tNombre\t\t\t\t\t\tSaldo\n");
fread(&c, sizeof(c), 1, x);
while (!feof(x)) {
p("\n%3d\t%-20s\t\t\t\t%6.2f", c.cod_cli, c.nom_cli, c.cuenta);
fread(&c, sizeof(c), 1, x);
}
p("\n");
}

Lic. Jonathan G. Pécora


Esto es todo por hoy

Dudas o consultas?

Lic. Jonathan G. Pécora

También podría gustarte