UNIDAD 6: REGISTROS Y ARCHIVOS DIRECTOS
TEMA LINUX GCC 5: FILTROS CONDICIONES
Otro problema similar al anterior es el de filtros o condiciones, es decir en muchas ocasiones es necesario obtener información acerca de un subconjunto de renglones de el archivo.
Por ejemplo todos los estudiantes que sean mayores de 17 años, o todos los clientes que sean de Tijuana, etc. a esto le llamamos filtros o condiciones.
Tambien se resuelve de manera similar a los de archivos secuenciales es decir usando un ciclo de lectura de todo el archivo e ir desplegando todos los registros que cumplan la condicion.
Prog32.html
<HTML> <FORM ACTION="http://192.168.1.251/~tusitio/cgi-bin/prog32.cgi" METHOD=post> EDADES MAYORES DE:<INPUT TYPE=text NAME=EDAD><BR> <INPUT TYPE=submit VALUE=FILTRAR> </FORM></HTML>
corrida:
prog32.cpp
#include <string>
#include <iostream>
#include <lcnet.h>
using namespace std;
static struct {
int clave;
char nombre[30];
int edad;
} animalito;
int main() {
// cargando condicion
int edad=getinteger("EDAD");
cout << "Content-type: text/html\n\n";
cout << "<html>" << endl;
//abriendo, leyendo,cargando estructura
FILE *archdisco;
archdisco = fopen("//home//tusitio//animalito.dat","r+");
// aqui siempre debe empezar el ciclo de lectura
// y fread() regresa siempre cuantas estructuras leyo
while(fread(&animalito,sizeof(animalito),1,archdisco)==1)
{
// desplegando estructuras ciertas
if ( animalito.edad >= edad )
cout << animalito.clave <<" "<<animalito.nombre<<" "<<animalito.edad<< "<br>"<<endl;
}; // aqui termina while
// no olvidar cerrar archivo y siempre fuera de while
// tampoco olvidar cerrar la pagina
fclose(archdisco);
cout << "</html>" << endl;
return 0;
}
corrida:
Como se observa es un problema y una solución similar al TEMA LINUX GCC anterior de busquedas.
TAREAS PROGRAMACION LINUX GCC PROGRAMACION LINUX GCC
HACERLES PROGRAMAS DE FILTRADO A LOS ARCHIVOS ANTERIORES, PERO LA CONDICION DE BUSQUEDA FORMARLA CON COMPONENTES HTML DE SELECCION(UNO PARA LA VARIABLE Y OTRO PARA EL OPERADOR RELACIONAL) Y UN COMPONENTE TEXT( PARA EL DATO), ESTO PERMITIRIA QUE SE PUDIERA FILTRAR EL ARCHIVO POR CUALQUIER CAMPO.