Mostrando las entradas con la etiqueta ISIS PASCAL. Mostrar todas las entradas
Mostrando las entradas con la etiqueta ISIS PASCAL. Mostrar todas las entradas

25 enero 2008

BUSQUEDA DE CODIGO FUENTE PUBLICO EN GOOGLE

Resulta una muy buena noticia conocer que Google está ofreciendo un nuevo servicio de búsqueda de programas cuyos códigos fuente son de uso público. En particular para los usuarios de ISIS que desean conseguir estos programas y que pueden recurrir al enlace o link:
 
 
Para los que quieran localizar programas en Isis Pascal, por ejemplo, pueden especificar en la búsqueda file:pas, es decir la extensión que caracteriza a estos programas fuentes y alguna cadena de caracteres asociada que precise la búsqueda, como MENU o FORMAT, según sea el area de aplicación que se desee localizar. Por ejemplo:
 
file:pas MENU
o
file:pas FORMAT
o
file:pas cds
o
file:pas password (etc.)
 
En todos los casos Google desplegará las líneas del programa donde aparecen las cadenas especificadas en la fórmula de búsqueda en un recuadro en gris sobre el que se puede hacer click con el mouse para acceder a la(s) línea(s) en cuestión, o en un enlace superior sobre el recuadro que da acceso al programa completo (en azul), o bajarlo (download) haciendo click en un enlace debajo de los recuadros grises (en verde) que da acceso al archivo que lo contiene que puede ser un archivo compactado (zip, tgz, gz, tbz, etc.) que pude contener varios archivos pas y otros. Muchas veces es posible deducir por la ruta del enlace de donde proviene, aunque Google si conoce la licencia lo menciona, sino pone "Licencia desconocida".
 
En los programas en Isis Pascal Goggle indica "Pascal/Delphi" como tipo de programa, pero esto identifica a todos los programas fuentes en Pascal de modo general.
 
Si se desea buscar programas en CISIS con la fórmula file:cisis el indicador de Google lo identificará como C++ o batch file  o simplemente omitirá el tipo de archivo si no lo identifica. Por ejemplo visualizamos un programa desarrollado en una biblioteca rusa:
 
     1: #ifndef __CISISHANDLE__         #define __CISISHANDLE__                  #include "vcl.h"         #include "mibs64.h"
 
El enlace identifica claramente que es una biblioteca (library), de tomsk en Rusia (ru) de isis vinculados a dll y que es un archivo zip.
 
Estas posibilidades le serán de utilidad a todos los usuarios con conocimientos de programación, que se manejen en inglés y dependiendo del nivel de documentación explicativa del programa en cuestión, sino será chino mandarín para cualquiera.
 
 

23 junio 2000

ANTECEDENTES DEL PROGRAMA CREA

ANTECEDENTES DE LA CREACION DEL PROGRAMA
PARA INSTALACIÓN DISTRIBUÍDA DE BASES DE DATOS
EN CDS/ISIS DE UNESCO
CREA.PAS


Utilizando una aplicación desarrollada por ISISTEC, Empresa Argentina que desarrolló el programa PRESTA, me encontré con un ejecutable en Isis Pascal (STUP.PCD), vinculado al archivo CREA.BAT:

@echo off
echo 1=%1\ >> %2.par
echo 2=%1\ >> %2.par
echo 3=%1\ >> %2.par
echo 4=%1\ >> %2.par
echo 5=%1\ >> %2.par
echo 6=%1\ >> %2.par
echo 7=%1\ >> %2.par
echo 8=%1\ >> %2.par
echo 9=%1\ >> %2.par
echo 10=%1\ >> %2.par

Este archivo crea el Archivo Nombre de la Base de Datos PAR (BD.PAR), escribiendo el indicador de línea (1=, a 10=) y tomando el primer parámetro que entrega el archivo PCD (%1) que corresponde a la ruta de la base de datos, agregando la barra de cierre (\), y que almacena en el archivo de texto Nombre de la Base de Datos PAR, luego toma el segundo parámetro con el nombre de la base de datos (%2), agregando la extensión PAR.

La creación de este archivo se realiza en el directorio de las bases de datos (DATA), y su función es sólo de direccionamiento de la base de datos dada en ese directorio, no teniendo por función una instalación distribuída de la misma. es decir en su directorio específico, derivado jerárquicamente del directorio de Bases de Datos, asignado por el parámetro 5=, del SYSPAR.PAR (Normalmente DATA).

ESTRUCTURA DE BASES DE DATOS NO DISTRIBUIDAS (Gráf.1)





ESTRUCTURA DE BASES DE DATOS DISTRIBUÍDAS (Gráf.2)


1. El primer paso, consistió en crear un programa en ISIS Pascal, que pudiera ejecutar este archivo BAT:

PROGRAM CREA (s: string) [MENU]; {indicador de que puede ser ejecutado desde} {una opción de Menu}

VAR ruta, nombd: string; {variables de cadena de caracteres}

BEGIN {Instrucción de inicio del programa}
nombd:=dbn; {asignación del nombre de la BD a la variable}
ruta:=PATH('dbn',1); {asignación de la ruta de la base a la variable}
system('CREA 'ruta' 'nombd); {Ejecución en DOS del programa CREA} {traspasando los parámetros ruta y nombre de} {la base}
s:=''; {cierre del programa y regreso al MENU ISIS}
END. {Instrucción de fin del programa}

Este programa tenía la limitación de que había que trasladar el archivo Nombre de la Base de Datos PAR creado, al directorio de Bases de Datos (Parámetro 5 del SYSPAR), porque el archivo PAR era creado en el directorio de trabajo (Parámetro 4 del SYSPAR), normalmente el directorio ISIS, y además, había que crear el directorio específico de la base de datos, y luego trasladar los archivos de la base de datos a su nuevo directorio, al cual direccionaba el archivo PAR creado.

2. Sin embargo, la solución a las limitaciones vendría después de crear un formato en WINISIS, que hiciera las funciones equivalentes a este programa en ISIS Pascal.

Para ello, diseñamos un formato sencillo, que debe copiarse a la base de datos que se quiere instalar de forma distribuída:

s0:=(db) {asigna nombre de la base a la variable s0}
s1:=(' \\ISIS\\DATA\\'s0,' ',s0) {asigna ruta y nombre de la base a variable s1}
QC,/#### {Centra el texto, cambia de línea, dejando 4 en} {blanco}
link(('Crear archivo PAR y Directorio de la Base de Datos'),'CMD C:\\WINISIS\\CREA.BAT's1) {Crea enlace con el mensaje "Crear archivo..."}
{y ejecuta con el comando CMD, dando la ruta}
{de ubicación del archivo CREA.BAT, los {parámetros almacenados en la variable s1}

3. El primer intento de solución para este problema, fue el de modificar el archivo CREA.BAT, para que además creara el Directorio de la Base de Datos y trasladara sus archivos del directorio de las Bases de Datos (Normalmente DATA, pero en el ejemplo BASES), al directorio específico de la Base de Datos:

@echo off
echo 1=%1\ >> %2.par
echo 2=%1\ >> %2.par
echo 3=%1\ >> %2.par
echo 4=%1\ >> %2.par
echo 5=%1\ >> %2.par
echo 6=%1\ >> %2.par
echo 7=%1\ >> %2.par
echo 8=%1\ >> %2.par
echo 9=%1\ >> %2.par
echo 10=%1\ >> %2.par

MD %1 {Crea el directorio con el nombre de la base}
MOVE ?%2.FMT %1 {Traslada la(s) hoja(s) de trabajo al directorio de la base}
MOVE %1.FDT %1 {Traslada la FDT al directorio de la base}
MOVE %1.PFT %1 {Traslada el PFT al directorio de la base}
MOVE %1.FST %1 {Traslada la FST al directorio de la base}
MOVE %1.VAL %1 {Traslada el VAL al directorio de la base}
MOVE %1.XRF %1 etc.
MOVE %1.MST %1
MOVE %1.CNT %1
MOVE %1.L01 %1
MOVE %1.L02 %1
MOVE %1.N01 %1

Como se puede apreciar, se incluyeron los comandos para crear el directorio (MD %1) y los de trasladar los archivos (MOVE...).

Sin embargo, seguía existiendo la limitación de tener que instalar y utilizar un archivo externo (CREA.BAT), vinculado al formato, y tener que copiar este formato en cada base de datos creada o existente para su instalación distribuída.

4. Buscamos la solución en ISIS Pascal, perfeccionando el archivo CREA.PAS:

PROGRAM CREA(s:string)[MENU];
{PROGRAMA QUE CREA ARCHIVO DBN.PAR DE LA BASE DE DATOS EN USO}
{EL DIRECTORIO DE LA BASE DE DATOS, Y TRASLADA SUS ARCHIVOS A}
{ESTE DIRECTORIO ESPECÍFICO}

{AUTOR: HUGO RUEDA VILDOSO}
{FECHA: 6-9/6/2000}
{FONO-FAX: (56-2) 356 91 18}
{Correo 58, Casilla 72, Santiago de Chile}
{E-mail: hrueda@vtr.net}

VAR bd,rutadbn: string;

PROCEDURE BDPAR; {Procedimiento que crea Archivo DBN.PAR}
VAR archpar,cierra,camino: string;
numlin: real;

BEGIN
bd:=dbn;
numlin:=1; {variable numérica que almacena el primer número de línea (1 a 10)}
{del Archivo DBN.PAR}
archpar:=(DBN'.par'); {variable de cadena que almacena nombre y extensión}
camino:=PATH('DBN',1); {variable que almacena la ruta del DBN.PAR}
ASSIGN('OUT',caminoarchpar); {Abre archivo con el nombre DBN.PAR}
REPEAT {Inicia proceso repetitivo que itera y culmina con UNTIL}
WRITELN(OUT,ENCINT(numlin,1)'='caminodbn'\'); {Escribe línea de texto con nú-}
{mero de línea, signo igual y ruta del archivo DBN.PAR, con salto de línea}
numlin:=numlin+1; {variable numérica que incrementa el número de línea en 1}
UNTIL numlin>10; {repite iteración hasta que el número de línea supera 10}
cierra:='';
END;

PROCEDURE BORRA; {Procedimiento para borrar los archivos remanentes que} {quedan en el directorio de la base de datos, pero que ya} {están en el directorio de la base de datos}

BEGIN

SYSTEM('DEL 'PATH('SYS',5)DBN'.*'); {Borra los archivos remanentes}
CLOSE; {Cierra la base de datos}
END; {Fin del procedimiento}

BEGIN {Inicio del Programa Principal}
rutadbn:=PATH('dbn',1); {Asigna la dirección de la base de datos a la variable}
system('md 'rutadbndbn); {Crea el Directorio con el Nombre de la Base de Datos}
WRITELN('RUTA DEL DIRECTORIO: 'rutadbndbn); {Muestra la ruta del directorio}
system('move 'PATH('SYS',5)'?'dbn'.FMT 'rutadbndbn); {Mueve la(s) hoja(s) de}
{trabajo al directorio de la base de datos recien creado}
WRITELN('RUTA DE TRASLADO DE ARCHIVOS: 'rutadbnDBN'.* 'DBN);
system('move 'PATH('SYS',5)dbn'.* 'rutadbndbn); {Mueve el resto de los archivos}
{al directorio de la base de datos}
BDPAR; {Ejecuta el Procedimiento que crea el archivo DBN.PAR}
CLOSE; {Cierra la Base de Datos}
OPEN(bd); {Abre nuevamente la base para grabar en memoria la nueva ruta de la} {base de acuerdo al archivo NBD.PAR}
BORRA; {Ejecuta el procedimiento que borra los archivos remanentes}
s:='' {Cierra el programa para regresar al Menu o a la opción de Programa (A)}
END. {Fin del programa}

Las condiciones de ejecución de este programa son las siguientes:

  1. Debe ejecutarse en la versión ISIS para DOS, ya sea en la opción A de Programación Avanzada del Menu Principal, o desde una opción habilitada de Menu, que debe ser el de Definición de las Bases de Datos (?XDEF), preferentemente. Se debe tener presente que en la versión para Windows (WINISIS), esta función no es necesaria al crear una nueva Base de Datos, pues basta con indicar la ruta (Path) y nombre de la Base. En caso de no existir el directorio, Winisis lo crea, así como el archivo DBN.PAR correspondiente.

  1. Si se ejecuta con bases de datos creadas con anterioridad y no de forma inmediata, se debe tener el cuidado de trasladar todos los archivos que no tengan el nombre estándar (que no coincidan con el nombre de la base de datos), al nuevo directorio, pues el programa sólo trasladará aquellos archivos que coinciden con el nombre de la base de datos, dejando los demás en el directorio de las bases de datos (habitualmente DATA).

  1. Por la razón anterior, se recomienda realizar la instalación distribuída de la base de forma inmediata a su creación, aunque no se descarta la ejecución diferida del programa como se señala en el punto 2.

La instalación distribuída de las bases de datos, tiene la ventaja que permite una mejor administración de los archivos, posibilitando su localización rápida e inequívoca, utilizar formatos, tablas, hojas de trabajo, con el mismo nombre para distintas bases, etc. Este programa permitirá a muchos usuarios realizar esta instalación sin esfuerzo ni errores, divúlguelo en su esfera de contactos.

Con la finalidad de facilitar el trabajo de los usuarios, este programa se distribuye con el archivo ASXDEF.FMT (Menú de Definición de la Base de Datos, en español, de la versión 3.x de CDS/ISIS para DOS), con la opción incluída, por lo que bastará instalarlo en el directorio MENU sobreescribiendo el archivo ya existente.

Cualquier consulta, dirigirse a las direcciones indicadas en el encabezamiento del programa.