PDF de programación - ,b Manual de usuario y notas de implementación

Imágen de pdf ,b Manual de usuario y notas de implementación

,b Manual de usuario y notas de implementacióngráfica de visualizaciones

Publicado el 14 de Enero del 2017
258 visualizaciones desde el 14 de Enero del 2017
78,9 KB
15 paginas
Creado hace 9a (25/11/2010)
Manual de usuario y notas de implementación

,b

F. Javier Gil Chica

2010

Parte I
Manual de usuario

1. Qué es ,b

,b es un sencillo gestor de tablas de datos. A su vez, las tablas están
formadas por líneas de texto, de tal forma que cada línea representa un re-
gistro. Dentro de cada registro, los campos se separan unos de otros mediante
el carácter ’,’. Cuando un usuario hace funcionar el programa, se encuentra
ante un inductor. El programa funciona en un bucle, leyendo órdenes teclea-
das por el usuario y efectuando las operaciones que indiquen esas órdenes.

Para fijar ideas e ilustrar las explicaciones subsiguientes, usaremos la si-

guiente tabla:

marca,modelo,cilindrada,potencia,motor,precio
bmw,r1200r,1170,109,2b,14335
bmw,f800st,780,85,2p,9000
suzuki,gladius,650,72,2l,7000
suzuki,gsr600,600,90,4l,8000
yamaha,fz1,1000,150,4l,14000
yamaha,supertenere,1200,110,2p,15500
ducati,monster,1100,90,2l,11340
ducati,multistrada,1200,150,2l,16000
honda,cbr600,600,104,4l,12222
honda,vfr800f,800,120,4v,13600

1

Sugerimos al lector que salve las líneas anteriores con un nombre de ar-

chivo cualquiera para experimentar las distintas órdenes.

La primera línea de una tabla contiene los nombres de los campos. El resto
de las líneas son registros. Este formato mantiene los datos como un archivo
de texto, permitiendo que sean procesados por otros programas: filtros básicos
de UNIX, lenguajes como awk, editores de textos como vi, etc. Así mismo,
este formato permite la compresión eficiente de los datos, lo que se añade al
hecho de que el tamaño de cada registro es exactamente el que se precisa y
no, como ocurre en otros sistemas, el tamaño máximo que puede necesitarse.

2.

Inicio y cierre de sesión. Órdenes básicas

Nos referiremos al ejecutable con el nombre de B. Al invocarlo desde el
intérprete de órdenes del sistema aparecerá un ”saludo” en forma de logo e
inmediatamente el inductor:

###
##
##
#####
##
##
##

##
##
##

## ######

#

#

>

El programa se abandona mediante la orden quit. Ahora, podemos cargar
y manipular tablas. Cada tabla se ”conecta” a un puerto. El número de
puertos es una variable de implementación. Por defecto, hay 10 puertos,
numeros desde el 0 al 9. El estado de los puertos se presenta mediante la
orden slots. Así que, recién abierto el programa, la orden slots proporciona
la salida siguiente:

> slots

0 --
1 --
2 --

2

3 --
4 --
5 --
6 --
7 --
8 --
9 --

Donde los dos guiones, --, indican que el puerto correspondiente se en-
cuentra vacío, o libre. La primera operación por tanto que es preciso hacer
es cargar alguna tabla. Si la pequeña tabla que hemos presentado arriba la
salvamos con el nombre de motos.txt, la cargaremos mediante la orden load
0 motos.txt. La orden load requiere dos argumentos: un número de puerto
y un nombre de archivo. Esta orden abrirá el archivo, cargará todos los re-
gistros y para cada registro identificará cada campo. El número de registros
por tabla es ilimitado. Si después de cargar una tabla volvemos a llamar a la
orden slots, tendremos la salida siguiente:

> load 0 motos.txt
> slots

0 motos.txt
1 --
2 --
3 --
4 --
5 --
6 --
7 --
8 --
9 --

que nos indica que el puerto número 0 contiene la tabla almacenada en el
archivo motos.txt. Una tabla puede descargarse mediante la orden unload,
que requiere un número de puerto. Por ejemplo unload 0 descarga la tabla
previamente cargada y libera el puerto 0.

Hemos dicho que la primera línea de cada tabla contiene los nombres de
los campos. Estos campos pueden consultarse mediante la orden fields. En
relación con nuestra tabla de ejemplo:

3

> fields 0

marca
modelo
cilindrada
potencia
motor
precio

fields requiere un número de puerto. La orden nregs muestra el número

de registros contenidos en una tabla.

3. Explorar visualmente una tabla

Es posible explorar visualmente una tabla mediante la orden browse.
Además, es posible visualizar todos los campos de cada registro, o sólo una
selección de los mismos. Volviendo a nuestra tabla de ejemplo, para visualizar
la tabla cargada en el puerto 0, mostrando todos los campos de cada registro
escribiremos:

> browse 0 all

donde all es el argumento que indica a browse que ha de mostrar todos
los campos. Esta orden se apoya en el programa less, que a su vez permite
moverse con agilidad y efectuar búsquedas. Las órdenes básicas de less son:
1G para ir al principio; G para ir al final; /palabra busca la palabra que se
indique hacia adelante desde la posición actual; ?palabra busca hacia atrás.
q sirve para abandonar less, después de lo cual se retorna al inductor de B.
Para mostrar sólo algunos campos se suministra a browse una cadena. Cada
carácter de la cadena indica si el campo correspondiente (primer carácter para
primer campo, segundo carácter para segundo campo, etc.) va a mostrarse
o no. Cuando se quiere omitir un campo, se indica mediante el carácter ’-’;
cualquier carácter distinto del guión indica que ese campo será mostrado.
Por ejemplo, para mostrar sólo el modelo y el precio:

> browse 0 -s---s

El carácter ’-’ es obligatorio para omitir un campo. El carácter que hemos

usado, ’s’, no. Podíamos haber escrito, con igual efecto,

> browse 0 -m---m

4

o incluso

> browse 0 -m---p

Esto permite que la cadena sea hasta cierto punto mnemónica.
La orden browseby permite mostrar la tabla ordenada según un campo
que se especifique. Esta orden espera tres argumentos: un número de puerto,
el nombre del campo por el que se desea ordenar la tabla y una cadena
que puede ser: all para mostrar todos los campos o una cadena de formato
tal y como se acaba de explicar para browse indicando qué campos han de
mostrarse. El campo por el que se efectúa la ordenación no ha de mostrarse
necesariamente.

Finalmente, la orden html permite generar una tabla html que puede
visualizarse con cualquier navegador. Esta orden requiere tres argumentos:
un número de ranura, que es la que contiene la tabla; un nombre de archivo,
que es el que se va a generar; una cadena de formato, que indica, para cada
campo, su alineación dentro de la columna: l para ajustar a la izquierda,
c para ajustar al centro y r para ajustar a la derecha. El archivo generado
contiene la tabla situada entre las etiquetas <html> y </html>. De esta
forma, puede visualizarse directamente desde el navegador. Por ejemplo:

> html 0 motos.htm llrrlr

genera la página motos.htm. Esta página contiene una tabla con los re-
gistros cargados en el puerto 0. La tabla se presenta de forma que los campos
marca, modelo y motor están ajustados a la izquierda, mientras que los res-
tantes están ajustados a la derecha.

4. Extractos

Es posible hacer extractos de una tabla y formar una tabla nueva, que
será cargada en un puerto libre que se especifique. La operación más sencilla
de este tipo consiste en tomar de una tabla dada un subconjunto de sus
campos. Así, la nueva tabla tendrá igual número de registros, pero cada
registro sólo contendrá los campos que se hayan especificado. La orden cut
realiza esa operación. Espera un puerto de origen, donde ya se encuentra una
tabla, un puerto de destino, que ha de estar libre, y una cadena donde se
indique qué campos se van a extraer y cuales no. Mediante el carácter ’-’ se
indica que un determinado campo se omite. Cualquier otro carácter indica
que el campo se incluye en la nueva tabla. Esta cadena no necesariamente ha
de tener tantos caracteres como campos la tabla original. Si la cadena tiene

5

un número inferior de caracteres, por ejemplo n, se aplica a los n primeros
campos de la tabla original. Por ejemplo, si queremos extraer de nuestra tabla
otra que contenga sólo el modelo y el precio:

> cut 0 1 -m---p

Para extraer sólo marca y modelo:

> cut 0 1 mm

En este segundo caso, obsérvese que la cadena de máscara tiene sólo
dos caracteres, de acuerdo con el hecho de que el último campo en que se
está interesado es el segundo. Este ejemplo presupone que la tabla original se
encuentra en el puerto número 0, y se indica que el extracto se cargará en el
puerto número 1, que se supone vacío. Después de la operación, una llamada
a slots tendrá la salida siguiente:

> slots
0 motos.txt
1 cut 0 1 mm
2 --
3 --
4 --
5 --
6 --
7 --
8 --
9 --

Ahora aparecen ocupadas las ranuras 0 y 1. Se nos indica que en la ranura
0 se ha cargado el archivo motos.txt y que la ranura 1 se ha cargado con el
resultado de la orden cut 0 1 mm.

Es posible realizar un extracto de forma que aparezca ya ordenado por
el campo que se especifique. De esto se ocupa la orden cutby, que espera un
puerto de origen, un puerto de destino, el campo por el cual se quiere ordenar
el extracto y la cadena de máscara. Por ejemplo, para extraer sólo marca y
modelo, ordenando por marca:

> cutby 0 1 marca mm

donde hemos supuesto que la tabla origen se encuentra en la ranura 0 y

que la ranura 1 se encuentra libre.

6

5. Orden alfabético y numérico

Si invocamos a la orden browseby indicando el campo potencia, obten-

dremos la salida siguiente:

> browseby 0 potencia ---p
potencia
104
109
110
120
150
150
72
85
90
90

Como se ve, ésta no es una ordenación numérica, sino alfabética. El mo-
tivo es que todos los campos son cadenas de caracteres, pero algunos de
ellos pueden representar cantidades numéricas. Para realizar correctamente
la ordenación en estos casos se usan las órdenes browseby-n y cutby-n.

> browseby-n 0 potencia ---p
potencia
72
85
90
90
104
109
110
120
150
150

Ahora el resultado es el que esperamos.

6. Marcas

Cada registro de una tabla tiene asociado un vector de banderas, im-
plementado mediante un entero de 32 bits, cada uno de los cuales puede

7

accederse individualmente. Cada bit se identifica por su número, indexando
desde 0 hasta 31. Pueden seleccionarse los registros que cumplan cierta con-
dición, y activar para esos registros el bit que se desee. Para comprobar si
un campo de un registro cumple una cond
  • Links de descarga
http://lwp-l.com/pdf646

Comentarios de: ,b Manual de usuario y notas de implementación (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad