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.

 




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