UNIDAD 5: C++ REGISTROS Y ARCHIVOS SECUENCIALES

TEMA 10: C++ OPERACIONES CON CAMPOS


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

prog23.cpp


#include <stdio.h>

#include <stdlib.h>

#include <io.h>

#include <conio.h>

#include <string.h>

struct {

int matricula;

char nombre[30];

int edad;} alumno;

void main() {

clrscr();

FILE *arch1;

FILE *arch2;

arch1 = fopen("cpp:\\ac\\alumnos.dat","r+");

arch2 = fopen("cpp:\\ac\\temporal.dat","at+");

// aqui siempre debe empezar el ciclo de lectura

// y fread() regresa siempre cuantas estructuras leyo

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

{

// OPERACIONES

alumno.edad=alumno.edad +50;

//grabando a temporal

fwrite(&alumno,sizeof(alumno),1,arch2);

}; // aqui termina while

//cerrando archivos

fclose(arch1);

fclose(arch2);

// removiendo y renombrando archivos

// recordar que directorios y archivos de datos no

// mas de 8.3 letras

remove("cpp:\\AC\\ALUMNOS.DAT ");

rename("cpp:\\AC\\TEMPORAL.DAT","cpp:\\AC\\ALUMNOS.DAT ");

//avisando

puts("EDADES MAS 50");

getchar();

}

corrida:

image216.jpg

corrida prog19

image217.jpg

como se observa la solución es muy sencilla solo se ocupa el registro original y los dos archivos el original y el temporal, se va leyendo registro a registro de archivo original al registro en memoria correspondiente, se realiza la operacion u proceso deseado con el registro y se graba el registro modificado en el archivo temporal, al final se elimina archivo original y se renombra el archivo temporal.

TAREAS PROGRAMAS EN C++

CONSTRUIRLES PROGRAMAS QUE PROCESEN ALGUNOS CAMPOS DE LOS ARCHIVOS 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