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:

image101.jpg

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:

image102.jpg

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.

Politica de Privacidad