UNIDAD 6: C++ REGISTROS Y ARCHIVOS DIRECTOS

TEMA 8: EDICION MODIFICACION DE REGISTROS C++


Modificar o editar un registro es uno de los procesos mas comunes con archivos en disco, generalmente despues de un fuerte proceso de captura de registros, una revisión o consulta general muestra muchos de ellos con errores de captura.

vamos a editar el segundo registro.

Prog31.cpp


#include <stdio.h>

#include <conio.h>

#include <string.h>

struct {

int clave;

char nombre[30];

int edad;} animalito;

void main() {

clrscr();

// cargando clave a buscar

printf("dame clave editar:");

int claveb; scanf("%d",&claveb);

//abriendo, leyendo,cargando estructura

FILE *archdisco;

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

// usar fseek() para posicionarse al principio de registro buscado

fseek (archdisco, (long)(claveb)* sizeof(animalito), 0 );

// ahora se lee el registro

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

// desplegando estructura y asegurandose

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

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

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

printf("\n");getchar();

//recapturando los nuevos datos

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

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

// regresando a apuntador para regrabar

fseek (archdisco, (long)(claveb)* sizeof(animalito), 0 );

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

// no olvidar cerrar archivo

fclose(archdisco);

//avisando

printf("REGISTRO EDITADO");

getchar();getchar();

}

corrida:

image230.jpg

Observar que es el programa normal de busqueda pero ya desplegado el registro se piden los nuevos datos, posteriormente se regresa el apuntador de registros a la posición original para volverse a regrabar el registro pero con los datos ya editados.

TAREAS PROGRAMACION C++

CONSTRUIRLES PROGRAMAS DE EDICION O MODIFICACION A LOS ARCHIVOS YA CONSTRUIDOS.

 




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