PHPISAM PARA LA WEB

    El manejo de los Archivos Planos en proyectos de cierta envergadura es un trabajo complejo y no permite un acceso rápido en Archivos con gran cantidad de registros, pero usando ISAM podemos solucionar este problema con una simple línea en nuestro programa para manipular el Archivo .INX que es donde se alojan los Indices del Archivo en cuestión, de esta forma podemos seguir usando nuestros Archivos Planos sin problemas, al tener aislada en el Archivo aparte .INX la maquinaria necesaria para el acceso a datos. En todas las aplicaciones un elemento fundamental son las listas de registros como Catálogos, Pedidos de un Cliente, Material enviado en una fecha, etc., por lo que disponemos de Comandos con este enfoque, como Registros a partir de una Clave o entre dos Claves determinadas, o aquellos en que la parte izquierda de la Clave sea igual al valor indicado, además también podemos combinar los casos anteriores entre sí.

    Estos Comandos devuelven a nuestro programa una lista en la que figuran todos los registros en el orden establecido en el Indice y que *****plen las condiciones solicitadas. Como la lista puede ser muy larga se hahilitan dos parámetros para recibir solo un número de registros a partir de una posición, esto nos permite recorrer un gran Archivo y traer solamente las líneas de datos que componen la Página vamos a presentar.

    En nuestro programa solo tendremos que hacer una lectura en disco por cada número de registro de la lista devuelta por el programa de ISAM, números que vienen separados con coma por lo que resulta muy fácil, veamos un ejemplo para PHP:

    $nConsu = $cabecera; // Obtener el Número de Consulta.
    $Longi = 300; // Longitud registro de Respuestas
    $nLineas = 20; // Indica 20 líneas por Página.
    $inicio += $nLineas; // Avance de Página.

    $resul = exec("serafoX l/Respuestas/0/".$nConsu."/".$inicio."/".$nLineas."");
    $totRegis = strtok( $resul, "/");
    echo "Total registros encontrados:".$totRegis;
    $nuReg = strtok( $resul, ",");
    while($nuReg){
    fseek( $fich, $nuReg*$Longi );
    $Buf = fread( $fich, $Longi );

    SEPARACION EN CAMPOS DEL REGISTRO $Buf LEIDO
    Y CREACION DE HTML PARA PRESENTAR LA LINEA

    $nuReg = strtok( $resul, ",");
    }

    La primer línea supone que hemos leido una Consulta y tenemos su número que es $nConsu. Hemos utilizado el Comando l/Respuestas/etc. que nos devuelve una string con un número que es el total de registros encontrados y un / slash de separación seguido de los números de Registro a presentar separados por coma, los cuales vamos seleccionando con strtok, leyendo y presentando en el subsiguiente bucle while.

    Por supuesto también se dispone de los Comandos clásicos como la Creación del Archivo de Indices, Inserción de una Clave, Eliminar, Buscar una sola Clave, Primera, Siguiente, Anterior, Ultima.

    Aprovechando la operativa descrita, se habilita la posibilidad de ejecutar varios Comandos en una sola llamada al programa de ISAM, para casos como en las modificaciones de Claves donde usaremos primero el de Eliminar todas las Claves del registro y a continuación el de Insertar los nuevos valores, otro caso, y este el más interesante, nos permite seleccionar varios Indices del mismo Archivo y obtener una lista con los que *****plen todas las condiciones, y con del orden de clasificación de cualquiera de los Indices implicados, p.e. todos los registros del mismo Cliente comprendidos entre dos Fechas, para lo que usaremos un Comando g/ARCHIVO/2/cliente para seleccionar los del Cliente, y otro con k/ARCHIVO/3/fch1/fch2 para Limitar las Fechas. Hemos supuesto el Indice=2 para Cliente y el Indice=3 para Fecha.

    Para obtener estos resultados se hace una sola llamada a ISAM con los Comandos seguidos y separados por chr(198) el caracter ASCII Æ = 198. En el caso de listas es obligatorio un número que indica cuál de ellas impone el orden en la lista resultante, en caso contrario no se realiza el cruce de los diferentes Indices. e/ARCHIVO/etc.Æh/ARCHIVO/etc. para el primer ejemplo y g/ARCHIVO/2/clienteÆ0k/ARCHIVO/3/fch1/fch2 para el segundo, donde el cero que acompaña al separador indica que el orden de los datos resultante será el del comando cero, o sea el Indice 2, y si deseamos orden por Fecha que es el Indice 3 pondremos un 1 con el separador.
    URL: http://www.phpisam.com

    Noticias Linux y más

    Todas las novedades de Google I/O 2025: la inteligencia artificial como eje del futuro tecnológico

    Google IO 2025La conferencia Google I/O 2025 ha concluido, y como es habitual, dejó una gran cantidad de anuncios y avances en tecnologías clave.

    Leer más...

    Google Meet revoluciona las videollamadas con traducción de voz en tiempo real

    Google MeetEn un mundo cada vez más conectado, las barreras lingüísticas siguen siendo uno de los grandes obstáculos para la colaboración entre equipos internacionales, estudiantes, profesionales y usuarios en general.

    Leer más...

    Fuga masiva de datos en Facebook: se filtran 1.200 millones de registros de usuarios

    Facebook filtrado Una nueva filtración masiva de datos vuelve a sacudir a Facebook (Meta). Según publicaciones recientes en foros de ciberdelincuencia, se ha extraído una base de datos con 1.200 millones de registros de usuarios aprovechando una API de la plataforma.

    Leer más...

    Estas son las carreras profesionales que NO podrá sustituir la Inteligencia Artificial

    Salud MentalLa irrupción de la inteligencia artificial (IA) ha transformado numerosos sectores, automatizando tareas, optimizando procesos y, en algunos casos, desplazando ciertos perfiles laborales.

    Leer más...

    Please publish modules in offcanvas position.