UNIDAD 6:C++ REGISTROS Y ARCHIVOS DIRECTOS

TEMA 7: OPERACIONES CON CAMPOS C++


En este tema se analiza la manera de poder realizar operaciones o procesos con los campos de los registros en el archivo DIRECTO, lo unico importante a considerar es que los campos del registro son en cierta medida igual que variables normales y por tanto se pueden procesar de manera normal como lo muestra el ejemplo.

prog30.cpp


#include <stdio.h>

#include <io.h>

#include <conio.h>

#include <string.h>

struct {

int clave;

char nombre[30];

int edad;} animalito;

void main() {

clrscr();

FILE *arch1;

long r=0;

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

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

{

// sumando 100 a edad

animalito.edad = animalito.edad + 100 ;

// como ya se leyo se regresa el apuntador al principio del registro

fseek(arch1,r*sizeof(animalito),0 );

// y se escribe el registro modificado al archivo

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

r=r+1;

//turboc no permite i/o archivos sin un rewind, fseek, etc

fseek(arch1,r*sizeof(animalito),0);

}; // aqui termina for

//cerrando archivo

fclose(arch1);

//avisando

puts("EDADES + 100");

getchar();getchar();

}

corrida prog27:

image227.jpg

corrida prog30

image228.jpg

corrida prog27

image229.jpg

como se observa la solución es muy sencilla solo se ocupa:

1.- leer fread() el registro, esto mueve el apuntador al siguiente registro.

2.- modificar registro

3.- regresar a posición anterior con fseek()

4.- grabar fwrite() el registro corregido

5.- volver a usar un fseek() porque turboc no acepta i/o sin rewind, fseek, etc ver ayuda del compilador

y no se ocupan los dos archivos como en el caso secuencial.

TAREAS PROGRAMACION C++

CONSTRUIRLES PROGRAMAS QUE PROCESEN ALGUNOS CAMPOS DE LOS ARCHIVOS C++ EJEMPLOS QUE YA TIENEN 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