ProgramacionFacil

UNIDAD 6: C++ REGISTROS Y ARCHIVOS DIRECTOS

TEMA 3: GRABACION Y LECTURA ARCHIVOS DISCO C++


Como ya se menciono grabar y lectura de registros o estructuras a renglones o registros de archivos en disco.

Estos dos procesos son los casos mas comunes y frecuentes que se pueden realizar con un archivo de disco.

GRABACION DE UNA ESTRUCTURA A UN ARCHIVO EN DISCO

prog26.cpp


#include <stdio.h>

#include <conio.h>

#include <string.h>

struct {

int clave;

char nombre[30];

int edad;} animalito;

void main() {

clrscr();

// captura de campos

printf("dame clave :");scanf("%d",&animalito.clave);getchar();

printf("dame nombre :");gets(animalito.nombre);

printf("dame edad :");scanf("%d",&animalito.edad);

// grabando a disco

FILE *archdisco;

archdisco = fopen("cpp:\\ac\\archivo1.dat","ab+");

fwrite(&animalito,sizeof(animalito),1,archdisco);

fclose(archdisco);

//avisando usuario

printf("animalito insertado");

getchar();getchar();

}

CORRIDA:

image221.jpg

Observar que es completamente similar aL programa de archivos secuenciales, solo se recomienda y exije que las claves sigan la secuencia 0,1,2,3,4,5…..

Otra observación es que se esta usando el “fopen()” en modo “ab+” en lugar de modo “w” pero es para matar dos pajaros de un tiro, reestudiar la clase de modos de apertura.

La instrución de grabación es:

fwrite(&animalito,sizeof(animalito),1,archdisco);

que ya se estudio anteriormente.

LECTURA CONSULTA DESPLIEGUE DE REGISTROS

Prog27.CPP


#include <stdio.h>

#include <conio.h>

#include <string.h>

struct {

int clave;

char nombre[30];

int edad;} animalito;

void main() {

clrscr();

// leyendo disco

FILE *archdisco;

archdisco = fopen("cpp:\\ac\\archivo1.dat","rb+");

// aqui siempre debe empezar el ciclo de lectura

// y fread() regresa siempre cuantas estructuras leyo

while(fread(&animalito,sizeof(animalito),1,archdisco)==1)

{

// desplegando estructuras

printf("%d ",animalito.clave);

printf("%s ",animalito.nombre);

printf("%d ",animalito.edad);

printf("\n");

}; // aqui termina while

// no olvidar cerrar archivo y siempre fuera de while

fclose(archdisco);

getchar();getchar();

}

CORRIDA:

image222.jpg

Seria bueno que el despliegue fuese en una tabla pero esto queda de tarea.

TAREAS PROGRAMAS EN C++

1.- Cargar y Leer los archivos pedidos en el tema anterior.

 




 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki
Politica de Privacidad