UNIDAD 5: REGISTROS Y ARCHIVOS SECUENCIALES

TEMA LINUX GCC 8: FILTROS

Otro problema similar al anterior es el de filtros, 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 al anterior, es decir usando un ciclo de lectura de todo el archivo e ir desplegando todos los registros que cumplan la condicion.

Prog22.html

<HTML>
<FORM ACTION=/~tusitio/cgi-bin/prog22.cgi METHOD=post>
PESOS MAYORES DE:<INPUT TYPE=text NAME=PESO><BR>
<INPUT TYPE=submit VALUE=FILTRAR>
</FORM></HTML>

corrida:

image74.jpg

prog22.cpp

#include <string>
#include <iostream>
#include <lcnet.h>
using namespace std;
static struct {
int clave;
char nombre[30];
float peso;
} alumno;
int main() {
// cargando condicion
float peso=getinteger("PESO");
cout << "Content-type: text/html\n\n";
cout << "<html>" << endl;
//abriendo, leyendo,cargando estructura
FILE *archdisco;
archdisco = fopen("//home//tusitio//alumnos.dat","r+");
// aqui siempre debe empezar el ciclo de lectura
// y fread() regresa siempre cuantas estructuras leyo
while(fread(&alumno,sizeof(alumno),1,archdisco)==1)
{
// desplegando estructuras ciertas
if ( alumno.peso >= peso )
cout << alumno.clave <<" "<<alumno.nombre<<" "<<alumno.peso<< "<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:

image75.jpg

Como se observa es un problema y una solución similar al TEMA LINUX GCC anterior de busquedas.

TAREAS 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