UNIDAD 5: C++ REGISTROS Y ARCHIVOS SECUENCIALES C++

TEMA 7: BUSQUEDA ARCHIVOS C++


En este tema se analiza la busqueda de un registro o renglón determinado.

En este proceso el usuario del programa quiere que se despliegue un y solo un registro de información proporcionando un dato de busqueda generalmente la clave del registro.

prog20.cpp

#include <stdio.h>
#include <conio.h>
#include <string.h>
struct {
int matricula;
char nombre[30];
int edad;} alumno;
void main() {
clrscr();
// cargando clave a buscar
printf("dame matricula buscar:");
int clave; scanf("%d",&clave);getchar();
//abriendo, leyendo,cargando estructura
FILE *archdisco;
archdisco = fopen("cpp:\\ac\\alumnos.dat","at+");
// aqui siempre debe empezar el ciclo de lectura
// y fread() regresa siempre cuantas estructuras leyo
while(fread(&alumno,sizeof(alumno),1,archdisco)==1)
{
// desplegando estructura buscada
if ( clave == alumno.matricula)
{ printf("MATRICULA =%d ",alumno.matricula);
printf(" NOMBRE =%s ",alumno.nombre);
printf(" MESES =%d ",alumno.edad);
printf("\n");};
}; // aqui termina while
// no olvidar cerrar archivo y siempre fuera de while
fclose(archdisco);
getchar();
}

corrida:

image211.jpg

Recordar que la caracteristica principal de un archivo secuencial de c++ es que no es posible acceder o accesar a un registro o renglon especifico o determinado sino que se debera recorrer todos los n-1 renglones anteriores.

Esta situación se da porque al construir un registro cualquiera con una montón de campos strings a la hora de almacenar dichos registros, estos registros tendran tamaños diferentes, esta es la razon principal por la cual al buscar un registro especifico se tiene que recorrer y validar todos los registros anteriores.

En el programa ejemplo se esta usando un ciclo while fread para recorrer todos los registros del archivo, por supuesto que si se tiene un archivo con 5000 registro y el buscado es el 4500 al menos se se tendra que recorrer todos los 4499 registros anteriores.

TAREAS PROGRAMACION C++

Construirles programas de busquedas a los archivos de c++ ya construidos.

Politica de Privacidad