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.

Politica de Privacidad