BASE DE DATOS DE ESPECIMENES PARA LA INVESTIGACION Y MANEJO DE COLECCIONES:

UN MANUAL PRACTICO PARA USUARIOS
DE DBASE® Y WORDPERFECT®

Nancy Hensold
Tropical Collections Specialist
Department of Botany
The Field Museum
Roosevelt Road at Lakeshore Drive
Chicago, IL 60605-2496

Contacto: hensold@fmnh.org


CONTENIDO

Introducción

A. Diseño de una Base de Datos
A-1. Consideraciones generales
A-2. Base de Datos en el Field Museum para el Norte del Perú - Explicación de la estructura de los campos

B. Protocolo de captura de datos

C. Visión de los archivos (files) de dBase

D. Indices y Recuperación de Información
D-1. Creación de un Indice a partir del menú
D-2. Uso de los índices
    D-2.1. Ordenamiento de la base de datos por un índice
    D-2.2. Busqueda en archivos indexados
    D-2.3. Situaciones del dBase que afectan el comando SEEK
    D-2.4. Notas sobre la edición de archivos indexados
D-3. Localización de registros sin un índice
    D-3.1. A partir del Menú: “Search”
    D-3.2. A partir del comando Line: “Locate”
E. Actualización de los archivos de la Base de Datos
E-1. Añadiendo determinaciones
E-2. Edición Global y el comando REPLACE
E-3. Correcciones
E-4. Cambios de estructura de la Base de Datos

F. Estadística Simple
F-1. Conteo de registros con una condición dada
F-2. Usando el línea de comandos para computarizar
F-3. El comando CALCULATE

G. Creación de Reportes
G-1. El comando LIST
G-2. El Generador de Reportes (dBase IV)
    G-2.1. Diseño de un Reporte
    G-2.1.1. Procedimiento Básico
    G-2.1.2. Notas en el ordenamiento de templetes de campo
    G-2.1.3. Uso de Bandas Grupales (Group Bands)
    G-2.2. Impresión de un reporte
G-3. Exportación de Archivos de Texto ASCII a WordPerfect
G-3.1. Exportación de datos a archivos de Wordperfect Merge (WP 5.1)
G-3.2. Exportación de datos a “archivos de datos” de Wordperfect (WP 6.0)

    G-3.2.1. Importación directa de registros de bases de datos
    G-3.2.2. Importación de archivos de Texto delimitado (ASCII)

    G-3.3. Archivos de fusión primaria (forma)
    G-3.3.1. Diseño de un archivo primaria de fusión (WP 5.1)
    G-3.3.2. Diseño de un archivo de formato (WP 6.0)

H. Reportes Especializados
H-1. Etiquetas de especímenes
    H-1.1. Un programa de etiquetas de dBase, para conversión de Datos
    H-1.2. Formato de WordPerfect para etiquetas (Labels Format)
    H-1.2.1. Como funciona el formato de etiquetas
    H-1.2.2. Creación de un formato para etiquetas
    H-2. Etiquetas de determinación
    H-3. Listas de determinaciones
    H-4. Catálogos de Proyectos

Agradecimientos

Literatura Citada

Apéndice 1. Abreviaciones para las familias de plantas vasculares-Perú

Apéndice 2. Familias de los géneros peruanos de Pteridophytas

Apéndice 3. Uso de los Comandos de dBase
3a. Afirmaciones de rango y de condición
3b. Indice de Comandos elegidos de dBase

Apéndice 4. Un Programa de conversión de datos para etiquetas de especímenes
4a. LABELS.PRG
4b. Estructura de archivos auxiliares para el programa LABELS.PRG


FIGURAS:
Figura 1. Estructura del Archivo DETBASE con Registro Ejemplar
Figura 2. Archivo Primário de Fusión (Forma) - Muestra para etiquetas de especímenes
Muestra de Etiqueta



Introducción

Las bases de datos para especímenes son una herramienta invaluable para los taxónomos, las cuales han ganado una amplia aceptación y accesibilidad en años recientes. Las bases de datos no solamente facilitan la investigación y el poder compartir información, sino pueden incrementar considerablemente la eficiencia de las operaciones básicas en los herbarios tales como la generación de etiquetas de especímenes, etiquetas de determinaciones, y listas de identificación. Por algunos años, en el Field Museum hemos introducido en la base de datos los materiales provenientes del Perú usando un IBM PC, y Software de dBase® (Version IV para DOS o 5.0 para Windows) en conjunto con WordPerfect® (Version 5.1 para DOS o 6 para Windows). Esta base de datos llamada “DETBASE,” ejecuta las siguientes funciones:

1. Rápida busqueda acerca de datos de especímenes del norte peruano.
2. Generación de listas de registros.
3. Generación de etiquetas de especímenes a partir de datos de herbario (en conjunto con WordPerfect).
4. Generación de etiquetas de determinación.
5. Generación eficiente de listas de identificaciones para enviarse a los colectores y un medio fácil de envío de las múltiples determinaciones actualizadas.
6. Seguimiento de duplicados enviados.
7. Seguimiento de proyectos especiales de colección.
8. Generación de catálogos de especies, para areas especiales de proyectos, regiones políticas o rangos altitudinales.
9. Generación de listas y índices de "exsiccatae", para trabajos taxonómicos.
10. Cálculos estadísticos simples.


Esta base de datos es un simple “flat file” con estructura de sus campos comparable a aquellas que poseen las bases de datos de sistema “mainframe”, tales como TROPICOS (desarrollada por el Missouri Botanical Garden) y SMASCH (desarrollada por la Universidad de California -Berkeley). La compatibilidad de la estructura de sus campos permite compartir datos con otras instituciones via “delimited text files", sin considerar el software en uso.
Un sistema basado en PC ofrece gran flexibilidad y accesibilidad a un investigador. Sin embargo, requiere familiaridad con la capacidad de los software y el lenguaje de los comandos, y el aprendizaje del manual puede ser tedioso. Debido a ello se presenta aquí un Manual de sugerencias prácticas y protocolos para uso de dBase en herbarios, con ejemplos de nuestra base de datos, DETBASE.
Estas estructuras y protocolos surgieron de nuestras propias necesidades en el manejo de material de nuestro proyecto florístico, y no de un intento de diseñar un "sistema" óptimo de computarización de herbario. Lo que este manual intenta es permitir a un principiante en computación empezar trabajos con un programa de base de datos, dándose cuenta desde el principio las opciones que están disponibles y cuáles decisiones concebidas son más importantes.
Este manual asume una mínima familiaridad con dBbase, y el uso del comando line, o "dot prompt". Los lectores familiarizados unicamente con el "Sistema de menús" pueden encontrar ayuda valiosa en el Apéndice 3. Las teclas clave referidas en el texto están aplicadas a dBase IV para DOS.

A. DISEÑO DE UNA BASE DE DATOS

A-1. Consideraciones Generales

La base de datos ideal para especímenes está diseñado para permitir: 1) facilidad para ordenar registros de especímenes en las categorías o secuencias deseables; 2) búsqueda, recuperación, y cálculos eficientes de la información deseada; 3) eficiente corrección, edición y actualización; 4) facilidad para compartir datos con otras instituciones e indivíduos; y 5) uso eficiente del espacio del disco.

Como una regla general, es mejor esparcir los datos dentro de las unidades prácticas más pequeñas. Lo más fácil es combinar campos despues, que separarlos. Mientras más números de campo sean reconocidos, existe mejor posibilidad de ordenar e indexar especímenes y lo más fácil es efectuar búsquedas y resolver interrogantes. Así mismo, cuando los campos son pequeños, es más fácil revisar y editar los datos para que sean consistentes.

Los datos ingresados en los campos los cuales probablemente van a ser usados para seleccionar o indexar la base de datos deben ser monitoreados y mantenidos en un formato y escritura uniforme. Por ejemplo, dado que Ud. frecuentemente puede requerir ordenar los registros de la base de datos o crear reportes los cuales son ordenados por el nombre del colector y el número, es importante estandarizar la forma de escritura del nombre del colector. Si esta es consistente, puede ser modificada posteriormente, si es necesario, con un reemplazo global de un comando.

Es también mejor, cuando el espacio del disquete es limitado, usar abreviaciones estándares donde sea práctico, y evitar frases o palabras repetitivas, tales como “Depto.” o “Altitud”. Protocolos simples pueden ser usados para convertir las abreviaciones o añadir palabras repetitivas cuando se desee, ya sea directamente a la base de datos o para imprimir un reporte (para ejemplos vea las Secciónes E-2 y H-1.)

En la mayoría de programas para base de datos, la cantidad de espacio usado es una función directa del número de los registros por la suma de la longitud de los campos. Los campos que son llenados con información ocupan tanto espacio como los campos vacíos. Por lo tanto es importante no hacer campos más grandes de lo necesario, y generalmente es práctico no construir campos que raramente contendrán información, tal como un campo para "número de cromosomas“ , el cual puede anotarse en el campo de notas, de ser necesario.

Los software de dBase reconocen varios tipos de campo, incluyendo campos numéricos, de caracteres, logicos y de fecha. Un campo es mejor diseñando como numérico cuando: a) serán ingresados en él solamente números, y b) si se requiere seleccionar, indexar o efectuar cálculos en el campo. Los campos numéricos automaticamente justifican su contenido al lado derecho, mientras los de carácter tienen justificación a la izquierda y por lo tanto no seleccionan números en un orden numérico real.

Es posible reducir el uso de espacio utilizando algunos enlaces ("linked"), o “bases de datos relacionales” ("relational data bases"). Por ejemplo, una lista de los nombres científicos puede ser almacenada en una base de datos, y ligada al registro de especímenes mantenidos en otra base de datos, por medio de un único número referencial. Esto es una práctica común para bases de datos grandes, y es posible hacerlo usando dBase. Sin embargo, no es necesario en una base de datos pequeña, la cual puede ser convertida posteriormente a partir de un "flat file" a un diseño relacional.


A-2. Base de Datos en el Field Museum para el Norte del Perú

Nuestras colecciones de plantas vasculares del norte peruano son capturadas en cuanto llegan en un archivo de dBase IV (o V) llamado DETBASE. La estructura del archivo DETBASE, y una muestra de registro se muestra en la Figura 1. A continuación se presenta una explicación del contenido de los campos.

1. CLASE - Este campo permite la selección de los principales grupos de los taxa (PTEridofitas, GYMnospermas, MONocotiledoneass, DICotiledoneas) para el catálogo florístico.

2. FAMILIA - Se usan también abreviaciones de tres letras como en Weber (1982). Vea el Apéndice 1 para las abreviaciones; el Apéndice 2 para la ubicación de familias de los géneros de helechos.

3. GENERO - Nombre del género

4., 7. ESPECIES, SUBESPECIE - Epíteto específico e infraespecífico, respectivamente.

5., 8. AUTOR, AUTOR2 - Autor(es) (incluyendo el autor de los basiónimos entre paréntesis) de la especie y taxón subespecífico respectivamente. Si es posible, use abreviaciones estándar, como en Brummitt & Powell, 1992.

6. VAR_SSP - Rango de taxón subespecífico (f., ssp., or var.)

9. AFF_CF - Este campo es para comentarios abreviados, o "calificadores" acerca de la determinación. Usualmente no es importante que se siga un modelo o formato rígido, pero generalmente se incluyen los siguientes parámetros:
cf. [”comparable a”]
aff. [afin, “relacionado con”]
vel aff. [o un taxon cercano]
s.s. [sensu stricto, en sentido estricto]
s.l. [sensu lato, en sentido amplio]
hybrid [híbrido]
ex (o e) descr [identificación basada solamente en una descripción publicada;
no hubo otros especímenes disponibles para comparación]
* - Usamos un asterisco en este campo para indicar los comentarios más extensos acerca de la determinación, tal como nombre del subgénero, o un taxon más estrechamente relacionado, etc. puede encontrarse en el campo NOTAS.
10. DEPTO - Abreviaciones de los departamentos peruanos usados en Cat. Fl. Peru (Brako & Zarucchi, 1993).

AM = Amazonas
AN = Ancash
AP = Apurimac
AR = Arequipa
AY = Ayacucho
CA = Cajamarca
CU = Cuzco
HU = Huánuco
HV = Huancavelica
IC = Ica
JU = Junín
LA = Lambayeque
LI = Lima
LL = La Libertad
LO = Loreto
MD = Madre de Dios
MO = Moquegua
PA = Pasco
PI = Piura
PU = Puno
SM = San Martín
TA = Tacna
TU = Tumbes
UC = Ucayali



11. SITIO - Este campo puede ser usado para proyectos codificados por números o letras, va a ser determinado individualmente por el usuario. Permite que los datos de colección asociados con algún proyecto en particular sean rapidamente obtenidos para usarlos en reportes, recuentos, catálogos y datos estadísticos.

12. PROV - Nombre de la provincia

13. LOCAL - Toda la demás información acerca de la localidad.

14. HABITAT - Información acerca del hábitat, especies asociadas.

15. OBSERV - Información correspondiente al hábito de una planta, información ecológica, etc.

16. COLECTOR - Nombre del colector principal.

17. COL_AD - Nombres de los colectores adicionales, separados por comas.

18. NUMERO - Número de colecta. Este campo acepta solamente datos numéricos.

19. SUFFIX - Este campo es usado para sufijos, tales como "a" y "b", o “-93" del número de la colección.

20. HERBARIO - Acrónimos para los herbarios donde se encuentran los especímenes, separados por comas.

21. DUPL - Este campo puede ser usado: a) para seleccionar etiquetas de especímenes o de determinación para impresión, de tal forma que las etiquetas que necesitan el mismo número de copias sean impresas en la misma hoja y se ahorre papel; y b) para indicar cuantos duplicados se encuentran disponibles para distribución.
22-24. DIA, MES, ANO - Información de fechas. NOTA: abreviamos los meses con letras y no con números para evitar confundirlo con los dias.

25-26. ELEVACION, ELEV2 - Estos campos aceptarán 4 dígitos de datos numéricos, y asume las medidas en metros. Si contamos unicamente con un dato de altitud, se ingresa en el campo ELEVACION. Si se citan rangos altitudinales, como 2800-3200 m, se ingresa la altitud baja en ELEVACION y la más alta en ELEV2.

26-27. CORDLAT, CORDLON - Estos campos aceptarán solamente 4 dígitos. Nuestra base de datos asume latitud sur (S), y longitud oeste (W). Si es necesario, se puede añadir campos de caracter simple después de CORDLAT y CORDLON para diferenciar Norte-Sur y Este-Oeste.

28. NOTAS - Cualquier tipo de información adicional.

29. DETERMIN - Nombre de quien hizo la determinación, seguido por una coma y la fecha.

30. ENVIOS - Indica si la determinación más reciente del registro ha sido enviado al colector o no. (Vea H-3.)

31. ANNOT - Indica si las etiquetas de determinación están listas para imprimirse, o ya fueron impresas. (Usamos “A” y “D,” respectivamente, para “annotated” y “done.”)

B. Protocolo de Captura de Datos

Es más fácil y eficiente capturar datos de los especímenes tan pronto como estos son recibidos en el herbario, de ser posible de acuerdo a la secuencia de la libreta de campo. Esto debido a la capacidad de la base de datos de repetir datos de localidad y colectores.
1. En general, es mejor capturar nuevos datos acerca de especímenes dentro de un nuevo archivo, el cual puede ser corregido e impreso, y después anexado al archivo principal. Para crear un archivo vacío con una estructura idéntica a la del archivo principal (ejem. “DETBASE”), haga lo siguiente:

.use detbase
.copy structure to <newfile>
.use <newfile>
.append

2. Seleccionar uno de los siguientes comandos para permitir un copiado automático de datos repetitivos.

SET CARRY ON/OFF Este comando permite automaticamente la copia de todos los datos contenidos en los campos del último registro. Luego puede ser editado.
SET CARRY TO <fieldlist> Este comando copia solamente el contenido de campos específicos.

Ejemplo (recomendado para captura de datos de especímenes):
.set carry to depto,prov,local,habitat,colector,col_ad,herbario,dia,mes,ano,elevacion

Shift-F8
Presionando estas dos teclas juntas permite que los datos capturados en el campo sobre la ubicación del cursor sean duplicados en la parte inferior. Solamente copiará un campo a la vez. Si el campo ya contiene datos, será borrado y sobreescrito. Esta tecla es también útil para efectuar correcciones rápidas. (No es posible en dBase V para Windows).

3. ADVERTENCIA: a. NO USE comillas (“) en la base de datos (por ejemplo para nombres vulgares). Las comillas son usadas como delimitantes de campo en los archivos ASCII, y pueden ocasionar errores al transferirlo a un procesador de textos. En su lugar, pueden ser sustituidas por un apóstrofe (‘). No pueden ser eliminados por " search and replace routine", sino deben borrarse manualmente. b. NO ingrese comas entre carácteres numéricos, como en “3,000" or “1,6" porque pueden ocasionar errores en los campos.

4. Después que se ha completado la captura de datos para un conjunto de especímenes, se puede corregir, editar, ordenar un archivo, imprimir una copia (ver Creating Reports), o efectuar otros cambios. Cuando ha completado puede anexar el archivo temporal al archivo principal de la base de datos, usando los siguientes comandos.

.use detbase
.append from <newfile>


Después, puede:

.erase <newfile.dbf> borra completamente el archivo temporal

O
.use <newfile> borra completamente los registros preservando la estructura
.zap. para ingresos posteriores.


C. Visión de los archivos de dBase

Los registros de la base de datos en dBase IV o V pueden ser capturados y actualizados ya sea con el modo Edit (“form”) o Browse (“column”). Si se presiona F10 desde el "dot prompt", ingresará al modo Edit . Pueden usarse alternativamente los modos Edit y Browse presionando F2.
Si desea observar o actualizar solamente ciertos campos específicos, o registros con una condición dada, puede usar los siguientes comandos:
SET FIELDS TO <fieldlist> Permite que solo los campos selecionados sean mostrados, en el orden especificado.
Ejemplo:
.set fields to colector, numero, suffix, familia, genero, especies, autor, var_ssp, subespecie, autor2, aff_cf, notas, determin, envios, annot

El ejemplo anterior se puede usar para ahorrar tiempo al ingresar nuevas determinaciones.

SET FILTER TO <condition> Permite mostrar solo aquellos registros con una condición dada.
Ejemplo:
.set filter to colector=”Sanchez” .set filter to elevacion>3000

Retornar para visualizar toda la base de datos:
.set fields to
y/o
.set filter to

D. Indices y recuperacón de Información

La gran utilidad de bases de datos se debe a su capacidad de ordenar rapidamente de muchas formas y luego editarlo, imprimirlo, copiarlo o exportarlo en cualquier orden.
La herramienta principal para ordenar una base de datos es el "index". Esto es como el índice de un libro, un archivo auxiliar asociado con la base de datos el cual contiene la información para un ordenamiento rápido del archivo en un orden determinado por el usuario. Con un index en uso, el archivo de la base de datos puede ser editado, impreso (como una lista o reporte), copiado o exportado, y todas estas operaciones serán efectuados siguiendo el orden del índice en uso. Pueden definirse múltiples índices para cualquier base de datos, y las especificaciones son nominadas con "tag", a través del cual pueden recuperarse en el momento que uno lo requiera. Los índices automaticamente se actualizan cuando el archivo es editado, y se guardan cuando se cierra el archivo. La búsqueda de un registro específico en una base de datos muy grande, o en una computadora lenta, puede resultar una pérdida de tiempo, pero en una base de datos indexado, las búsquedas (usando el comando SEEK) para el campo indexado son más rápida.
La creación de índices puede hacerse a través del menú o del "dot prompt" (comando line).

D-1. Creación de un índice a partir del menú
1. A partir del modo EDIT o BROWSE, seleccione el menú ORGANIZE.
2. Seleccione CREATE NEW INDEX.
3. Usando el submenú que se visualiza, debe presionar primero ENTER , antes de ingresar su selección.
4. INDEX NAME (o “tag”): Este es el nombre usado para recuperar el índice desde el comando line, de tal forma que debe hacerlo fácil de recordar. Para un index simple, puede asignarse el mismo nombre del campo.
5. Después de haber seleccionado todo lo requerido, presione CTRL-END.

6. La base de datos aparecerá en el nuevo formato hasta que sea cerrado o el índice cambiado.
Ejemplos:
NOTE: A menos que se especifique de otra forma, asuma los valores por defecto para: FOR clause => [none], Order of index => [Ascending]; Display first duplicate key only => [NO].

Los registros ordenados por número de la coleta:
Index name NUMERO (o un nombre deseado)
Index expression NUMERO

Los registros ordenados por colector y número.
NOTA: En este ejemplo, Ud. debe usar STR() para convertir los datos de NUMERO a Caracter ; si no es así leerá el siguiente mensaje de error “Data type mismatch.”
Index name COLECCION
Index expression COLECTOR+STR(NUMERO)

Para las colecciones de Sagástegui, ordenado por número
Index name SAGAST
Index expression NUMERO
FOR clause COLECTOR=”Sagástegui”

Registros ordenados por familia, género, y especie.
Index name TAXON
Index expression FAMILIA+GENERO+ESPECIES

Una lista de todas las especies encontradas en la base de datos, ordenadas por familia y especies, con cada especie enlistada una sola vez (" UNIQUE list").
Index name UNITAXON
Index expression FAMILIA+GENERO+ESPECIES
Display first duplicate key only YES

D-2. Uso de los Índices
Una vez creados, todos los índices para una base de datos <FILENAME>.DBF son automáticamente almacenados en un archivo llamado <FILENAME>.MDX. Este archivo es automáticamente actualizado cada vez que los registros en la base de datos son cambiados o añadidos.

D-2.1. Ordenamiento de la base de datos por un índice

A partir del MENU:
1. En el modo BROWSE o EDIT, ingrese al menú ORGANIZE, y seleccione Order records by index. NOTA: Una vez que el índice se ha creado, el reordenamiento de la base de datos por el índice es extremadamente rápido.
2. Seleccione el nombre del índice de manera automática a partir del menú. Por medio de la selección Natural Order regresará al orden no indexado.

A partir de "dot prompt":
.use <filename> order <name of index>
e.g., .use detbase order taxon

O, si el archivo ya está en uso:
.set order to taxon
Retornar a la base de datos no indexado:
.set order to

D-2.2. Busqueda en archivos indexados
Los archivos indexados pueden ser usados para búsquedas muy rápidas en el campo indexado. Para ello use el comando seek a partir del "dot prompt". El comando seek solamente busca en campos indexados, en el orden en el cual aparecen en la expresión del índice.

Ejemplos:
Para localizar el primer registro con número de colección 8347 en DETBASE
.use detbase order numero
.seek 8347
[NOTA: Los datos en campos numéricos no deben colocarse entre
.edit comillas]


Para localizar el primer registro de Lamiaceae en el índice TAXON de DETBASE
.use detbase order taxon
.seek “LAM”
[NOTA: Datos tipo carácter deben colocarse entre comillas]
.edit

Para localizar el primer registro de Salvia en el índice TAXON
.use detbase order taxon
.seek “LAMSalvia”
.edit

D-2.3. Situaciones del dBase que afectan el comando SEEK

SET EXACT
ON/OFF Esta expresión determina cómo dBase ejecuta búsquedas e interpreta afirmaciones condicionales (“Condition statements”). Con EXACT ON, el contenido del campo debe relacionarse exactamente con las condiciones establecidas para la búsqueda. Con EXACT OFF, pueden aparecer caracteres adicionales en el campo. Por ejemplo, con EXACT ON, una búsqueda para "Leiva" en el campo de colector, no encontrará ningún registro de “Leiva, S.” En cambio con EXACT OFF, para “Leiva” reportará también registros de “Leiva”, “Leiva, S.” and “Leiva, P.” sin discriminación.

SET NEAR ON/OFF Esta expresión establece cómo dBase responde si no se localiza ningún registro solicitado. Con NEAR ON, localizará el registro con mayor semejanza al valor especificado. Con NEAR OFF, el panel de registro se ubicará al final del archivo, y aparecerá el mensaje “Value not found” (Valor no encontrado).

D-2.4. Notas sobre la edición de archivos indexados
Casi cualquier operación puede efectuarse en un archivo cuando éste es indexado, pero es necesario tomar algunas precauciones.
1. Si los datos son cambiados en el campo indexado, el registro puede ubicarse en una nueva posición tan pronto como este sea capturado, y la pantalla lo mostrará en su nueva posición. Si no desea seguir al registro a su nueva posición, vaya al menú Records, y elija “no” en “Follow record to new position (Siga el registro en su nueva posición).”
2. Operaciones con archivos globales, i.e., donde dBase tiene que buscar a través de todo el archivo ciertos registros, corre más rapidamente sobre archivos sin indexar, que en aquellos donde el indice está en uso. Antes de efectuar tales operaciones, retorne la base de datos a una forma sin indexar. Ejemplos de tales operaciones son: SEARCHes sobre campos no indexados, SORTs, COUNTs, y el comando REPLACE (si es global).
3. Borre los índices que no necesite. Esto puede realizarse a través del menú Organize. Los índices requieren espacio, e incluso tiempo, ya que constantemente están actualizándose cuando el archivo es modificado. Incluso cada vez que que se cambia la estructura del archivo, o borra registros de la base de datos, los índices son automaticamente regenerados, y necesitan tiempo.
4. No intente modificar la estructura de la base de datos mientras un índice está uso.
5. Muy rara vez, Ud. puede tener problemas para visualizar toda la base de datos a través de "browse". Si esto ocurre, vaya a "Organize Menu" y use el comando "Reindex".
6. Si Ud. copia un archivo indexado de la base de datos a otro disco, pero no copia el archivo index (MDX), recibirá un mensaje de error la primera vez que use el archivo copiado. Production.MDX file not found. Ud debe seleccionar Proceed el cual es seguido por el mensaje Production index file reference deleted.

D-3. Localización de registros sin un índice
La forma más rápida para localizar un registro particular es a través del uso de un Index, como se describió anteriormente. Sin embargo puede necesitar la búsqueda de un registro en un archivo no indexado. SEARCHing en un campo no indexado es mucho más lento que SEEKing en un campo indexado. La ventaja es que las búsquedas pueden localizar caracteres a partir de una frase en cualquier campo, mientras SEEK puede encontrar solamente los caracteres al inicio del campo.
Ud. puede efectuar búsquedas en campos no indexados a partir del Menú o de la línea de comando (dot prompt). Note que la línea de comando permite búsquedas más complejas.

D-3.1. A partir del Menú: “Search”
Coloque el cursor en el campo que Ud. desea buscar. Use la opción "Search" en el Menú Go To. Si la palabra que busca NO está al inicio del campo, use "*" en ambos lados de la palabra..
Por ejemplo, para localizar registros con la palabra “Cachil” dentro del campo LOCAL, “search” para *Cachil*.

D-3.2. A partir del Comando Line: “Locate”
El comando LOCATE FOR <condition> iniciará la búsqueda al inicio del archivo y encontrará el primer registro que reune la condición dada. La búsqueda puede continuarse con el comando CONTINUE. Al igual que el comando SEEK, el comando LOCATE es afectado por las condiciones “EXACT” y “NEAR”.

Ejemplos:
Para encontrar un registro cuando “Wurdack” es la primera palabra en el campo DETERMIN
.locate for determin=”Wurdack”

Para encontrar un registro con “Cachil” en cualquier lugar del campo LOCAL.
.locate for “Cachil”$local

Para encontrar un registro con el colector Sanchez, para altitudes menores de 3500 m, y la palabra "jalca" contenida en el campo de hábitat.
.locate for colector=”Sanchez”.and.elevacion<3500.and.”jalca”$habitat

Para continuar la búsqueda a través de todo el archivo para un carácter especificado por el último comando LOCATE:
.continue (o cont)

E. Actualización de los Archivos de la Base de Datos


Tipicamente, las bases de datos están sujetas a constantes actualizaciones y correcciones, algunas veces por diferentes personas. Se discuten aquí algunas recomendaciones para facilitar la actualización y los procedimientos de mantenimiento.


La adición de determinaciones nuevas a la base de datos es tipicamente el cambio más común e importante que puede hacerse al archivo. Si van a ser añadidas múltiples determinaciones, puede hacerse más rápidamente usando un index en el campo NUMERO, luego usar el comando SEEK para localizar el registro. Puede también usar "set fields" como se sugirió anteriormente.
Es necesario desplazarse entre la línea de comando y la base de datos, para ejecutar seek. Para evitar pérdida de datos recién ingresados, tenga cuidado de usar Ctrl-End para retornar a la línea de comando, y no la tecla Escape (Esc), o los datos no serán archivados.


En muchas ocasiones puede ser necesario una edición a gran escala, o “global” en la base de datos. Por ejemplo, orden y recuperación eficientes de información en una base de datos depende de la consistencia en la escritura correcta de los nombres de las personas, lugares, especies, y otros. De encontrar errores, usar el comando "replace", el mismo que es una herramienta poderosa para las correcciones. La sintaxis adecuada y las opciones para este comando son las siguentes:

NOTA: Antes de efectuar un reemplazo global, puede ser necesario usar el comando SET EXACT ON para evitar errores.

REPLACE <fieldname> WITH <expression>
SCOPE afirmación FOR condición WHILE condición

Reemplazar el contenido del campo con una expresión seleccionada. En ausencia de SCOPE, FOR, o WHILE , será reemplazado solamente un registro (Vea Apéndice 3)
Ejemplos:

Para reemplazar los datos en el campo de COLECTOR del actual registro solamente con “Sánchez Vega, I.”
.replace colector with “Sánchez Vega, I.”

Para reemplazar los datos en el campo de COLECTOR para todos los registros con “Sánchez Vega, I.”
.replace colector with “Sánchez Vega, I.” all

Para reemplazar con “I. Sánchez Vega” el campo de COLECTOR de todos los registros en los cuales la primera palabra actualmente es “Sanchez”
.replace colector with “I. Sánchez Vega” for colector=”Sanchez”

Para reemplazar el campo de CLASE con “MON” para todos los registros que contienen “POA” en el campo de FAMILIA.
.replace clase with “MON” for familia=”POA”

Para ingresar “3" en el campo de SITIO para todos los registros que contienen la palabra “Cachil” en cualquier lugar en el campo LOCAL.
.replace sitio with “3" for “Cachil”$local

El comando replace puede usarse también con expresiones más complejas, tales como los siguientes ejemplos, adaptados de nuestro programa para etiquetas de especímenes. NOTA: Si Ud. añade caracteres al campo, tal como se ha hecho aquí, el campo usualmente primero debe elongarse, y el tipo de campo cambiado si fuese necesario.

.replace determin with “det. by ” + rtrim(determin) all
Esto inserta los caracteres “det. by “ al inicio del campo DETERMIN. La función rtrim() recorta los espacios en blanco en el lado derecho del campo, de tal manera que haya espacio para la nueva combinación.

.replace elevacion with “Alt. “ + ltrim(elevacion) + “ msnm.” for elevacion#” “
Esto revisa el campo de ELEVACION para verificar que no esté vacío (elevacion#” “), y si no lo está, recorta los espacios en blanco al lado izquierdo del campo, inserta “Alt. “ antes del contenido del campo y después “ msnm.” De esta manera “3500" se convierte en “Alt. 3500 msnm.”

.replace observ with stuff(observ,AT(“rojo”,observ),4,”amarillo”) for “rojo”$observ
Las funciones STUFF() y AT() pueden ser usadas con el comando REPLACE para ejecutar la acción "búsqueda y reemplace" (“search and replace”). El ejemplo anterior reemplazará la palabra “rojo” con la palabra “amarillo”, en cualquier parte que esté presente en el campo OBSERV, en todo el archivo. El comando indicará a dBase: iniciar en la posición donde se encuentra la palabra “rojo” en el campo OBSERV [AT(“rojo”,observ)]; elimina las 4 letras; y sustituye la palabra “amarillo”. [Por supuesto, se reemplazará “rojo” incluso cuando estas letras forma parte de otras palabras, para especificar la búsqueda puede usar espacios antes y después de las palabras entrecomilladas.]

El comando replace puede efectuar incluso cálculos matemáticos, como en el siguiente ejemplo, el cual convierte pies a metros en el campo ELEVACION, multiplicando el valor del campo por .305.
.replace elevacion with elevacion*.305

Para mayor ayuda en la construcción de expresiones complejas, vea las funciones SUBSTR(), STUFF(), y AT() en el Manual de Lenguaje de dBase. Para calculadas expresiones, vea Sección F.


A fin de mantener la base de datos como una herramienta eficiente para la recuperación de información, frecuentemente es necesario corregir los campos individuales, especialmente campos indexados, para su consistencia en escritura correcta y uso, particularmente de nombres de las personas, lugares y especies.
Para lo cual puede usar un index UNIQUE de tal forma que cada variante en la corrección es enlistada una sola vez.

Por ejemplo, para corregir a consistencia en el campo del COLECTOR:
1) crea un índice UNIQUE por COLECTOR. 2) LIST COLECTOR TO PRINT. [Vea comando LIST, Sección G-1.] Ud. obtendrá una lista semejante a:

A. Sagastegui
A. Sagastegui A.
A. Sagástegui
Dillon
Dillon, M.
Dillon, M.O.
Dillon, M. O.
I. Sánchez V.
I. Sánchez Vega
J. Sanchez
J.Sanchez
M. Dillon
Sagastegui
Sagástegui
Sanchez [for I. Sánchez Vega]
Sanchez, J.
Sanchez V., I.
Sánchez Vega, I.



Una vez que se ha seleccionado la escritura deseada, Ud. puede cambiar todas las otras versiones del nombre, usando un comando "replace". Por ejemplo, se puede seleccionar el nombre Sánchez Vega, I. para ese colector. Para corregir todas las otras versiones del nombre:

.set order to [Retornar la base de datos a la forma no indexada, o el proceso será lento]
.set exact on [para evitar cambiar accidentalmente Sanchez, J. a Sánchez Vega, I.]
.replace for colector=”I. Sánchez V.”.or.colector=”I. Sánchez Vega” .or. colector = ”Sanchez”.or.colector=”Sanchez V., I.” colector with “Sánchez Vega, I.”

De acuerdo a las necesidades de su trabajo, Ud. puede requerir cambiar la estructura de la base de datos. Por ejemplo, puede necesitar alargar el campo NOTAS, o añadir campos extra para proyectos adicionales o códigos para procesamiento de especímenes. La estructura de una base de datos pueden cambiarse cuando Ud. lo necesite, usando el comando modify structure. Sin embargo, es preciso tener algunas precauciones:
1. Efectue una copia de seguridad del archivo, antes de efectuar cualquier cambio en la estructura.
2. Después de ello, revise que el disquete tenga el espacio suficiente para efectuar el cambio. Se necesitará igual espacio libre de la base de datos ya existente, o más aun si se desea alargar o crear nuevos campo.
3. Si desea cambiar un campo de Tipo C (Caracter) a Tipo N (Numérico), todos los datos de carácter, y los siguentes se perderán. Por ejemplo, “B127" en un campo de Carácter, aparecerá como “0" en el resultante campo Numérico, mientras “127B” se traducirá como “127".
4. Ud. puede cambiar el nombre de los campos ya existentes, pero NUNCA al mismo tiempo que está efectuando otro cambio en la estructura.
5. Ud. puede añadir nuevos campos, y cambiar la longitud o tipo (pero NO el nombre) de campos ya existentes al mismo tiempo.

F. Estadística Simple



Esta sección resume los comandos disponibles en la base de datos, los cuales pueden ser utilizados para obtener simple información numérica y estadística.

F-1. Conteo de registros con una condición dada

COUNT
Cuenta registros con una condición dada.
SCOPE afirmación
FOR condición
WHILE condición

Ejemplos:

Cuántos especímenes colectados por Sagástegui hay en la base de datos?
.count for colector="Sagastegui"

Cuántos especímenes no están determinados en la base de datos?
.count for especies=" "

Cuántos especímenes de Piptochaetium han sido colectados por Sánchez?
.count for colector= "Sanchez".and.genero="Piptochaetium"

Cuántas determinaciones hizo Leiva en 1995?
.count for "Leiva"$determin.and."95"$determin

Cuántos especímenes de Palicourea se colectaron en Bosque Cachil?
.count for "Cachil"$local.and.genero="Palicourea"

Cuántas especies de Palicourea se reportan para Bosque Cachil? (Suponga que "3" es el código del proyecto para Cachil)
Primero, genere un índice UNIQUE en GENERO+ESPECIES+SITIO
.count for genero="Palicourea".and.especies#" ".and.sitio="3"

Cuántos géneros están representados en la base de datos?
Primero establezca un índice UNIQUE en GENERO
.count all

F-2. Usando la línea de comandos para computarizar


Usted puede utilizar dBase como una calculadora para operaciones matemáticas simples, usando +,-,*, y/, para sumar, restar, multiplicar y dividir respectivamente.

Ejemplo: En la línea de comando(dot prompt), escriba
.?3*4
12

Que porcentage de especímenes en la base de datos son Asteraceae?
.count for familia="AST"
312
.?312/reccount()
[donde reccount()=número de registros en la base de datos actual]
0.18

F-3. El comando CALCULATE

Aparentemente este comando tiene un uso limitado para nuestros objetivos, pero sus funciones se resumen a continuación.

CALCULATE<lista opcional> Realiza cálculos de datos en los campos
SCOPE afirmación
FOR condición
WHILE condición

donde "lista opcional" puede ser una de las siguientes

AVG(exp) valor promedio de un campo (o expresión)
MAX(exp) encuentra el valor más grande de un campo
MIN(exp) encuentra el valor más pequeño de un campo
SUM(exp) suma de valores en el campo

Ejemplos:

Cuántos duplicados hay para distribución?
.calculate sum(dupl)

Cuál es el número de colecta más pequeño de Sagástegui en la base de datos?
.calculate min(número) for colector="Sagastegui"

Cuál es la altitud promedio donde han sido colectados los especímenes en la base de datos?
.calculate avg(elevacion)

Cuál es el tamaño máximo necesario para el campo OBSERV? (i.e., cuál es el conjunto de carácteres más largo que aparece en el campo?) NOTE que LEN(exp) da una longitud.
.calculate max(len(observ))

G. Creación de Reportes


Con la base de datos es posible generar una gran variedad de reportes útiles para diferentes propósitos, desde procesamiento de especímenes hasta de investigación.
Usando dBase IV y WordPerfect 5.1, se pueden generar reportes impresos mediante: 1) el comando list; 2) el report form generator; 3) exportación de archivos de texto delimitado (ASCII) a WordPerfect.
Recientemente hemos evolucionado a dBase V y WordPerfect 6.0 para Windows, los cuales tienen diferente capacidad para generar reportes. WordPerfect 6.0 puede importar archivos directamente de bases de datos (ya sea dBase IV o V), con la instalación estándar. El generador de reportes de dBase V (Crystal Reports) es diferente del de dBase IV, y no tenemos experiencia con él, ya que la capacidad de WordPerfect 6.0 lo reemplaza (excepto para la función "Group Band").

G-1. El comando LIST

Este comando, disponible desde la línea de comando, es el más rápido, y con frecuencia el mejor generador de listas de trabajo, e.g., listas para revisión de datos. Usando las diversas opciones disponibles con el comando, así como los índices disponibles, los datos pueden ser ordenados y filtrados de muchas formas posibles. La desventaja de este método es que permite solamente un formato limitado de impresión, y no es apropiado para generar copias publicables.
Los campos son formateados en columnas, con el nombre del campo en la parte superior. Sin embargo, si el total de la amplitud de los datos seleccionados en cada registro excede la amplitud de la página, la impresora interrumpe o enlaza los renglones. En el último de los casos, el trazo de la columna es interrumpido y difícil de interpretar. En cualquiera de los dos casos, el comando list con frecuencia es poco práctico para reportes que contengan cantidades relativamente grandes de datos por registro.

LIST Despliega el contenido del archivo en lista columnar en la pantalla.
FIELDS <lista de campos> Enlista solamente los campos específicos, en el orden mostrado.
SCOPE afirmación
FOR condición
WHILE condición
TO PRINTER/TO FILE También manda la lista a la impresora o al archivo.
OFF Evita que el número de registro se imprima (ahorrando espacio)

Ejemplo:
.list fields colector,número,género,especies for año>1992 to printer off

G-2. El Generador de Reportes (dBaseIV)

Este programa depende de dBase IV y puede ser utilizado para generar reportes estándares formateados de calidad publicable o casi publicable. Los reportes generados de esta forma pueden también ser escritos para archivos de texto y exportados a un procesador de palabras para su edición posterior. Este es un método más práctico para imprimir reportes cuando los datos por registro exceden la amplitud del papel. El reporte se genera mediante el arreglo de templetes de campos en una pantalla de diseño de reportes. Este diseño puede archivarse permanentemente (con una extensión .FRM) para un uso posterior.

G-2.1. Diseño de un Reporte

G-2.1.1. Procedimiento Básico

1. Abra la base de datos a la que se le va a aplicar el reporte.
2. En el comando line, escriba: .create report <report form filename> Puede usar cualquier nombre para la forma de reporte de archivo. Aparecerá una pantalla de diseño.
3'. Opción 1. Del Layout Menu, puede seleccionar Quick Layout, y luego Column o Form. La pantalla de diseño formateará automaticamente el reporte, conteniendo todos los campos de la base de datos, ordenados ya sea en Columna (Browse Mode) o Forma Layout (Edit Form), con los encabezados provistos. Los campos no deseados pueden ser eliminados, y hacerse otras modificaciones. Sin embargo, estos trazos tienden a usar mucho espacio en la impresión, por lo que un Custom Layout (trazo diseñado) (Opción 2) es preferible para nuestros propósitos.
3".Opción 2. Escriba el título del reporte bajoReport Intro Band [Introducción]. La Page Header Band es utilizada normalmente para encabezados de columnas cuando el reporte se imprime con la forma de columna común. Es raro su uso en trazos diseñados, y puede dejarse vacío.
4. Los "templetes de campo" se ordenan en la Detail Band [Cuerpo], de la siguiente forma:
a) Posicione el cursor donde desee que se imprima el primer campo.
b) Presione F5 para una lista de campos.
c) Sobreilumine un campo, e.g. COLETOR, y retorne.
d) Se le mostrará una caja de diálogo con variables de despliegue, para verificar. Presione CTRL END.
e) El templete de campo (una línea de XXX's para campos de carácter, 999's para campos numéricos) aparecerá en la Detail Band. NOTA: El nombre del campo NO aparecerá, a menos que usted lo escriba; de cualquier forma cuando usted diseñe el reporte puede identificar los templetes del campo que ha agregado sobreiluminándolos con el cursor; el nombre del campo se verá en el Status Bar al final de la pantalla.
f) Seleccione todos los campos que quiera, ordenados en columnas, hileras, o parráfos como lo desee.
5. Desde el Report Form Design Screen, usted puede View Report on Screen (Ver el reporte en la pantalla), desde el Print Menu. Si desea, puede imprimir el reporte directamente desde el menú de impresión (print menu).
6. Si tiene problemas con el formateo de longitud de página, puede diseñar una longitud de página y archivarla para una forma de impresión permanente (.PF file), usando el menú de impresión.
7. Para guardar la forma de reporte para un uso posterior, Save changes and exit (guarde los cambios y salga).
G-2.1.2. Notas en el ordenamiento de templetes de campo

1. Si conecta los templetes de los campos con un espacio duro (el cual se mostrará como una caja obscurecida), todos, excepto un espacio entre los campos será recortado. Esto es importante porque le permite conjugar datos de diferentes campos, en lugar de imprimirlos en un formato de columna, e.g.,

Chionanthus wurdackii Stahl
Schrebera americana (Zahlbruckner) Gilg


NO

Chionanthus wurdackii Stahl
Schrebera americana (Zahlbruckner) Gilg


2. Para determinar el número de campos que pueden acomodarse en una línea, generalmente se requiere experimentación. La longitud de la línea estándar en la pantalla de diseño (Design Screen) es 254. Es posible programar los márgenes derecho e izquierdo usando el Words Menu, antes de que haya iniciado los templetes de los campos. Sin embargo, con el márgen derecho programado en 60 (por ejemplo), la pantalla de diseño no le permitirá que le ponga más campos en una línea que tiene un total de 60 carácteres. Y si usted esta recortando los espacios en blanco de los campos, como arriba, las longitudes actuales de las líneas serán generadas mucho más cortas que el total de las longitudes de los campos. También es posible programar Word Wrap, si piensa que las líneas son muy largas para la página, pero en mi experiencia no todas las impresoras responden a esta programación, y algunas enlazarán los renglones aun con el Word Wrap apagado.

3. Cualquier carácter o signo de puntuación que usted escriba entre los templetes de campos, tales como ":", "det.por", o "NOTAS: "también se imprimirá en esa posición en el reporte. No obstante, si el campo asociado con este texto está vacío, el texto se imprimirá de todos modos.

G-2.1.3. Uso de bandas grupales (Group Bands)
Si va a imprimir de un archivo indexado, usted probablemente desee los registros agrupados en base al índice. Por ejemplo, si el archivo es indexado por FAMILIA + GENERO + ESPECIES, puede usar las bandas grupales (“Group Bands”) para conseguir los siguientes resultados.

Sin “Group Band”:

ACA Aphelandra acanthifolia Hook.
ACA Aphelandra formosa (H. & B.) Nees
ACA Beloperone sessilifolia Lindau
ACA Thunbergia alata Bojer
ACT Saurauia bullosa Wawra
ACT Saurauia loeseneriana Busc.
ACT Saurauia peruviana Busc.


“Group Band” = FAMILIA:

ACA
Aphelandra acanthifolia Hook.
Aphelandra formosa (H. & B.) Nees
Beloperone sessilifolia Lindau
Thunbergia alata Bojer
ACT
Saurauia bullosa Wawra
Saurauia loeseneriana Busc.
Saurauia peruviana Busc.


Para añadir bandas grupales:
1. Posicione el cursor en el Report Intro Band, bajo el título que ha capturado.
2. Elija Add a group band (Añadir una banda de grupo) de el Bands Menu.
3. Elija Field Value del menú.
4. Elija el campo que quiere agrupar.
5. Ingrese cualquier el templete de campo donde quiera que se imprima en el Report Intro Band. Use F5 (como en 4b anteriormente). Si quiere que tenga sangrias, como se muestra en los ejemplos, debe marcarlas en el templete.
6. Ingrese banda(s) de sub-grupo ("sub-group band) en las líneas siguientes, si quiere. Por ejemplo, podría también agrupar géneros, dentro de los grupos de familia.

Ejemplo:
Un diagrama de una forma de reporte utilizada para enviar listas de determinaciones.
(En una forma de reporte actual, los campos se despliegan como XXX's y 999's, no como nombres de campos como se muestra):

Report Intro Band-------------------------------------------
Lista de determinaciones para CPUN, junio 1995
Group Band (Bandas Grupales)---------------------------------------------
[COLECTOR]
Detail Band (Cuerpo)--------------------------------------------
[NUMERO][SUFFIX] - [FAMILIA]: [GENERO][ESPECIES][AUTOR][VAR_SSP]...(*)
det. por [DETERMIN]; NOTAS: [NOTAS]
[LINEA EN BLANCO]

(*) la línea continua... [SUBESPECIE][AUTOR2][AFF_CF]

G-2.2. Impresión de un reporte
Para imprimir un reporte desde un archivo de forma de reporte existente:
1. Use el archivo de la base de datos a la que el reporte se refiere.
2. Si usa una forma de impresión estándar, ingrese
._pform="<print form filename>"
3. Para ver la estructura de la forma del reporte, y para hacer modificaciones necesarias, tales como cambio de título, escriba
.modify report <report form filename>
Puede entonces imprimir desde el menú de impresión.
4. Alternativamente, puede imprimir directamente de la línea de comando escribiendo
.report form <report form filename> to print
5. O puede exportar el reporte a un archivo de texto de ASCII, legible por un procesador de palabras.
.report form <report form filename> to file <newfile>.txt

G-3. Exportación de archivos de texto ASCII a WordPerfect

Datos sin formato o con algun formateo preliminar, pueden ser exportados para edición e impresión a un procesador de palabras como WordPerfect, por varias vías.
1. Los datos pueden ser preformateados por el comando LIST (opción LIST to FILE, Sección G-1). Este archivo puede ser leido directamente por WordPerfect.
2. Los datos pueden ser preformateados de una manera más intensa por una Report Form (opción REPORT FORM to FILE, Sección G-2). Esta opción es preferible a la Opción 3 cuando se desea banda grupal.
3. Los datos pueden ser escritos para un archivo de WordPerfect Secondary Merge ( o "Data File" in WP 6.0). Esta opción permite el formateo más extenso. Los procedimientos se diferencían de WP5.1 y WP 6.0, y son los siguientes:

G-3.1. Exportación de datos a archivos de WordPerfect Merge (WordPerfect 5.1)
1. .use <filename>
2. Ordene los registros con un index, si lo desea (.set order to...)
3. .copy to <newfile> delimited [En este punto, puede elegir cuales registros desea, con una "FOR clause". Vea el comando COPY para opciones, Apéndice 3b.] Esto provocará que se cree un archivo de ASCII, con una extensión TXT, a menos que se especifique lo contrario. Los archivos de textos delimitados se ven así cuando son leidos por WordPerfect:

“ACA”,”Aphelandra”,”acanthifolia”,”Hook.”,”“,”“,”“,”LL”,”“,”Bolivar”,”El tambo, cerca a la ciudad de Bolivar”,”Ladera de arbustos y arboles.”,”Arbusto, pubescente. Flores anaranjadas”,”I. Sanchez Vega”,”“,”5034",”“,”CPUN,F,OS”,”“,”28",”Ago”,”1989",”3100",”“,”“,”“,”“,”D. Wasshausen, 1993",”no”,”“
“ACA”,”Aphelandra”,”formosa”,”(H. & B.) Nees”, . . . . . .

Para convertir un archivo de texto delimitado ASCII a un Archivo Secundario de Fusión (Secondary Merge File):

4. Abandone dBase. En la linea de comando de DOS, escriba CONVERT

Name of input file? <PATHNAME>\<filename>.txt
Nombre del archivo original? <directorio>\<nombre del archivo>.txt
Name of output file? <PATHNAME>\<filename>.sf
Nombre del nuevo archivo? <directorio>\<nombre del archivo>.sf
Elija Mailmerge to WordPerfect Secondary Merge
Enter field delimiter characters , [ENTER]
Escriba los caracteres que limitaran los campos, [RETORNO]
Enter record delimiter characters {13}{10} [ENTER]
Escriba los caracteres que limitaran los registros {13}{10} [RETORNO]
Enter character to be stripped from file [ENTER]
Escriba los caracteres que serán extraidos del archivo [RETORNO]

El Archivo Secundario de Fusión aparecerá de la siguiente forma sigue:

ACAENDFIELD
AphelandraENDFIELD
acanthifoliaENDFIELD
Hook.ENDFIELD
ENDFIELD
ENDFIELD
. . . . .
ENDFIELD

D. Wasshausen, 1993ENDFIELD
noENDFIELD
ENDFIELD
ENDRECORD

ACAENDFIELD
AphelandraENDFIELD
formosaENDFIELD
(H. & B.) NeesENDFIELD . . . . . .

5. En este punto, tiene una segunda oportunidad para ordenar los registros en los campos seleccionados (con Merge/Sort), si no se hizo en dBase.

G-3.2. Exportación de datos a archivos de Datos de WordPerfect - WordPerfect 6.0
WordPerfect 6.0 tiene una capacidad poderosa para leer e importar archivos de bases de datos. Con una instalación estándar apropiada, no es necesario copiar la base de datos a un archivo de texto de ASCII. También es posible elegir los campos deseados, y filtrar, o "query" (buscar) los registros a medida que son importados. Una vez importados, pueden ser ordenados con facilidad. Por lo tanto generalmente no es necesario preformatear los datos utilizando el comando list o el generador de reportes. (Sin embargo, la función de "Bandas Grupales" no esta disponible).
También es posible importar archivos de texto de ASCII, directamente de WordPerfect. La utilidad CONVERT ya no existe.

G-3.2.1. Importación directa de registros de bases de datos (se requiere instalación especial)
1. Introduzca la pantalla de documento de WordPerfect.
2. Elija Spreadsheet/Database del menú Insert.
3. Elija Import.
4. De la barra de Data Type, elija dBase. [Si no ha hecho la instalación apropiada, se le pedirá que lo haga.]
5. Elija el nombre de archivo y la vía del directorio de dBASE.
6. Aparecerá una lista de campos. Elija los campos que desea importar.
7. Si lo desea, elija Query para definir las condiciones de selección. Ejemplo: Para importar solamente aquellos registros con annot="a", elija el campo ANNOT y escriba a en el espacio inferior.
8. Los datos serán importados en la forma de un archivo secundario de fusión, descrito anteriormente.
9. Puede ordenar los registros como se desee. [Note que WordPerfect no puede realizar ordenamiento ''Unique", análogo al provisto por la opción de índice de dBase "UNIQUE". Para obtener este resultado, ordene los registros de la base de datos por el índice UNIQUE deseado, y luego copiélo para una archivo temporal para ser importado por WordPerfect.]
a) Seleccione Sort desde el menú Tools.
b) Seleccione User-defined sort y New...
c) Escriba el número de Campo que desea ordenar. WordPerfect ordenará la primera palabra en el campo. Si desea ordenar más de un campo, elija Add Key.
10. Guarde los datos importados a un archivo, como <filename>.DAT.

G-3.2.2. Importación de archivos de Texto Delimitado (ASCII)
1. Siga los pasos 1 & 2 como en WordPerfect 5.1.
2. Salga de dBase y entre a WordPerfect.
3. Seleccione Spreadsheet/Database desde el Menu Insert.
4. Seleccione Import.
5. Desde la barra DataType, seleccione ASCII Text File.
6. Escriba el nombre del archivo de TXT y la vía del directorio.
7. Los datos serán importados en la forma de un archivo secundario de fusión.
8. Siga los pasos 9 y 10 como anteriormente.

G-3.3. Archivos Primarios de Fusión (Formas)
Un archivo primario de fusión (=”form file” en WP 6.0) da instrucciones a WordPerfect de como formatear datos que acaba de importar. (Para ejemplos de archivos primarios de fusión vea Figura 2). Para crear este archivo:

G-3.3.1. Diseño de un Archivo Primario de Fusión (WP 5.1)
1. Haga una lista numérica de los campos en su segundo archivo de fusión.
2. Abra un documento nuevo.
3. Seleccione el tipo de carácter principal (“font type”).
4. Inserte en el documento los "códigos de fusión" ("merge codes") numerados donde quiera que aparescan los campos del mismo número. Para hacerlo presione SHIFT-F9,1,<number> en la página en el lugar deseado. También puede insertar cualquier otro texto deseado.
5. Inserte el código de fusión "PAGE OFF" al final presionando SHIFT-F9,4, o la impresora avanzará una página para cada registro.
6. Guarde el archivo
7. Fusione los archivos presionando Ctrl-F9,1, y los nombres de los archivos primarios y secundarios al indicarsele.

G-3.3.2. Diseño de un Archivo de Formato (“form file”) (WP6.0)
1. Seleccione Merge desde el Menu Tools
2. Seleccione Create a Form File.
3. Cuando se le indique a Associate a Data File, escriba los nombres de los archivos de datos que acaba de crear.
4. Diseñe el archivo de Forma como se describió para WordPerfect 5.1. No obstante, si importó el archivo directamente, cuando seleccione Insert Field, se le dará una lista de nombres de campo para seleccionar, y no necesitará usar números de campos. Estos nombres de campos también aparecerán en el archivo.

H. Reportes Especializados


Esta sección contiene guias de sugerencia para generar etiquetas de especímenes, listas y etiquetas de determinaciones, y catálogos de especies. Otros usos valuables no detallados aqui, son fácil de obtener de la generación de listas de exsiccatas e índices para exsiccatas para tratamientos taxónomicos. Para la producción de etiquetas de alta calidad, usamos dos técnicas no discutidas anteriormente: un programa de dBase para interpretar las abreviaciones y añadir verbaje repetitivo, tales como "Depto." y "det. by", y una definición de una "etiqueta" estandar en WordPerfect. Estas técnicas son aplicables tambien para otros propósitos, pero su uso se detalla aquí, en Sección H-1.

H-1. Etiquetas de Especímenes
Hacer etiquetas de especímenes directamente de las bases de datos ahorra mucho tiempo y esfuerzo, ya que es generalmente más fácil capturar datos en la base de datos que directamente en las etiquetas o en un formato de etiquetas de un procesador de palabras, y gran parte del formateo se hace automaticamente. Un procedimiento general que utilizamos para hacer etiquetas es el siguiente.
1. Captura de datos - Los especímenes registrados se capturan en un archivo llamado ETIQUETA.DBF, con la misma estructura de "DETBASE."
2. Inicie el programa de dBase de etiquetas (LABELS.PRG) - Este programa cumple lo siguiente:
a) Modifica las abreviaciones de nombres de familia, y nombres de departamento a su escritura completa, y añade los prefijos y sufijos apropiados al contenido de los campos.
b) Escribe los datos en un archivo de texto ASCII el cual puede ser leido por Word Perfect. (Este paso no es necesario para procesadores de palabras que pueden importar bases de datos directamente, tales como WordPerfect 6.0)
3. Genere un archivo de datos WP - El archivo es escrito a un "archivo Secondary Mail Merge (=Archivo de Datos, in WP 6.0) por uno de los métodos descritos en la Seccion G-3.
4. Fusione el archivo secundario de fusión (datos) con un archivo primario de fusión (forma) el cual ha sido creado en Word Perfect (vea Sección G-3.3 y Figura 2.)
5. Formatee con un formato de etiquetas diseñadas, el cual ya ha sido creado en Word Perfect.
6. Un poco de edición manual simple (adición y eliminación de lineas en blanco para hacer que las etiquetas quepan entre los cortes de páginas) es requerida en el archivo final de etiquetas de Word Perfect. Después de la captura de datos, este es generalmente el único paso del procedimiento que consume tiempo.
7. Tip para ahorrar papel - Si necesita cantidades variables de etiquetas, puede ordenar la base de datos antes de exportar el campo DUPL. Este permitirá ordenar las etiquetas de acuerdo al número de duplicados que necesita.

H-1.1. Un programa de etiquetas dBase para conversión de datos
El programa que usamos para convertir registros de base de datos para la producción de etiquetas se encuentra en el Apéndice 4a, y su funcionalidad se explica a continuación.
Líneas 1-3: El archivo de captura de datos ETIQUETA es copiado en una estructura nueva de archivo llamada ETIQUET2. Este archivo nuevo contiene solamente aquellos campos necesarios para la producción de etiquetas. Además, varios campos son mas largos y de diferente tipo, para acomodar las transformaciones de los contenidos de los campos logradas en el programa. (Vea Apéndice 4b para la estructura del archivo ETIQUET2).
Líneas 4-14: Varios campos son modificados para ser más legibles. Por ejemplo,
PROV Cutervo=> Prov. Cutervo.
ELEVACION 3500 => Alt. 3500 m
CORDLAT 548 => [5 48'S; 79 22'W]
CORDLON 7922
NUMERO 15320 => 15320 (justificado a la izquierda)

NOTA: El programa distinguirá los campos que están vacíos y no les agregará datos adicionales (e.g., "Prov.""Alt."or"det."), produciendo una etiqueta más límpia que la mayoría de los programas.
Líneas 15-16: "FAMILIA" y "DEPTO" son subrutinas que traducen las abreviaciones de familia y departamento. Esto se realiza usando los archivos auxiliares (FAMILIA.DBF, DEPTO.DBF; vea Apéndice 4b) las cuáles contienen las abreviaciones y la escritura completa. Los archivos son indexados en los campos que contienen la escritura abreviada, i.e., FAMILIA y DEPTO, con las etiquetas indexadas "FAMABB" y "DEPTABB", respectivamente. Se pueden hacer adiciones a estos archivos auxiliares cuando sea necesario, y más de una abreviación puede utilizarse para cualquier familia o departamento. La subrutina "FAMILY" también es útil cuando se generan catálogos para publicación, y pueden ser utilizados independientemente para este propósito.
ASC => ASCLEPIADACEAE
CA => Depto. Cajamarca:

Línea 17: Escribe un archivo de texto ASCII desde la base de datos convertida.
Líneas 18-20: Elimina todos los registros desde el archivo ETIQUET2 y cierra todas las bases de datos.
Líneas 21-24: Escribe el mensaje en la pantalla indicándole al usuario como ha sido nombrado el nuevo archivo de texto ASCII.

H-1.2. Formato de Etiquetas de WordPerfect

H-1.2.1. Como funciona el formato de etiquetas
"Etiquetas" es un opción de "Tipo de Papel" en WordPerfect. WordPerfect (dependiendo de la versión) reconoce varios tamaños y formatos diferentes de etiquetas. Si su versión no tiene definición de etiquetas, puede crear una y guardarla en su archivo para su uso futuro.
El código de formato de Etiquetas debe ser ingresado en el Archivo Primario de Fusión (Form), o aparecerá al inicio de cada etiqueta provocando que la impresora avanze una página por cada etiqueta. Añádalo al archivo fusionado después de que la fusión ha sido completada.
WordPerfect trata cada etiqueta como una página, las "páginas" se imprimen de izquierda a derecha, en lugar de arriba hacia abajo como en Formato de Columna. Por lo tanto si quiere hacer la prueba con una hoja de 6 etiquetas, debe solicitar la impresión de las Páginas 1-6. Si requiere 3 páginas, imprimirá 3 etiquetas en una hoja de papel (empezando en el lado izquierdo) y dejará 3 en blanco.

H-1.2.2. Creación de un formato para etiquetas

1'. En WordPerfect 5.1:
Presione: Shift-F8, Page(2), Paper Size(7),Add(2),Labels(8), yes
1". En WordPerfect 6.0:
Seleccione Format Menu, Labels, Create.
2. Ingrese las especificaciones del formato en la pantalla de diseño. Para etiquetas de especímenes, nosotros utilizamos papel 8.5 x 11", 6 etiquetas por página, con las siguientes pulgadas especificadas: Width 3.75" - Height 3.33" - Columns 2 - Rows 3 - Top 0.25" - Left 0.25". Distance between columns 0.5" - Distance between rows 0.25". Label Margins All 0". La versión en inglés (US) de WordPerfect 6.0 tiene un gran número de especificaciones de etiquetas de marca Avery, las cuales se pueden adaptar. Avery 5164 y 5664 imprimen etiquetas 2x3 por página. Avery 5661 y 5261 imprimen etiquetas de 2x10 por página (y puede funcionar para etiquetas de determinaciones.

H-2. Etiquetas de determinación
Las etiquetas de determinación pueden generarse de manera similar a las etiquetas de especímenes, usando el mismo método. Como se puede ver en la explicación de la estructura de DETBASE, “a” es introducida en el campo ANNOT cuando la determinación se captura, lo que es considerado el "final". Enseguida está un ejemplo de como los datos pueden exportarse de dBase a WP5.1, para imprimir etiquetas de determinaciones (Se requieren otra vez modificaciones para WP6.0, pero la lógica es la misma.)
1. .use detbase order coleccion [i.e., colector + str(número)]
2. .copy fields genero, especies, autor, var_ssp, subespecie, autor2, aff_cf, colector, numero, suffix, [notas,] determin for annot="a"to annot delimited
3. Convertir ANNOT.TXT a un archivo secundario de fusión de WordPerfect.
4. Vaya a WordPerfect. Fusiona ANNOT.SF con un archivo primario de fusión (Sección G-3.3.)
5. Formatee el archivo fusionado con un formato de etiqueta diseñada. [Para etiquetas de determinaciones nosotros utilizamos papel 8-1/2 X 11", 20 etiquetas por página, con las siguientes especificaciones: Width 4.18" -Height 1"- Columns 2 - Rows 10 - Top 0.12" - Left 0"-Distance between columns 0.14" - Distance between rows 0" - Left Margin 0.25" - Right Margin 0.25" - Top Margin 0.13" - Bottom Margin 0"; o "Avery 5261".]
6. Edite el documento final, eliminándo y añadiéndo líneas en blanco para que las etiquetas se localizen dentro de los cortes de página.
7. En cuanto las etiquetas de determinación sean impresas, regrese a la base de datos y:
.replace for annot="a" annot with "d"

H-3. Listas de Determinaciones

Las listas de determinaciones pueden elaborarse facilmente ya sea mediante el generador de reportes, o por exportación a WordPerfect. Si los datos son exportados a WordPerfect, las etiquetas de determinaciones serán impresas desde el mismo archivo, usando una forma de archivo primario de fusión diferente. Cuando mande las determinaciones a otro herbario, es preferible imprimir ambas listas y etiquetas de determinaciones.
Cuando una determinación nueva es capturada en la base de datos, “no” se captura en el campo de ENVIOS. Periodicamente, listas actualizadas de determinaciones son enviadas al herbario apropiado.
Tan pronto como la lista se imprima, regrese a la base de datos y
.replace for colector="Sanchez".and.envios.="no"envios with "yes"

H-4. Catálogos de Proyecto
Listas de especies para áreas particulares del proyecto (o para la base de datos completa), pueden ser generadas utilizando la opción de índice UNIQUE en dBase (Vea Sección D-1), con la claúsula apropiada FOR ("FOR clause") o programa de filtro (filter setting). Desde aquí, están diponibles varios métodos para generar reportes, dependiendo del software en uso. El generador interno de reportes de dBase es útil porque la función de Bandas Grupales puede extraer los nombres de las familias como encabezados de grupo. Si se importa directamente desde WP 6.0, necesitará copiar el archivo indexado a un archivo temporal para importación, ya que el ordenamiento "UNIQUE" no está disponible en WordPerfect.

Las abreviaciones de 3-letras para familia no ordenan las familias alfabéticamente de acuerdo a su escritura actual. Para remediar esto, los registros deseados y los campos pueden ser copiados a un archivo intermedio, donde las abreviaciones pueden ser traducidas (Vea Sección H-1.1, "Líneas 15-16"), y el archivo subsecuentemente indexado.


Agradecimientos

El Dr. Michael O. Dillon originó la base de datos DETBASE para este proyecto de trabajo florístico en el norte de Perú, y ha brindado ayuda y estímulo en el desarrollo de estos protocolos, y al escribir este manual. Los Doctores Michael Huft y Charlotte Gyllenhaal brindaron su asistencia generosa con el syntaxis de los programas de dBase, y con el desarrollo del programa de etiquetas de especímenes. Agradezco a Pedro Lezama y Laura Torres por la traducción del texto al español.

Literatura Citada

Brako, L. & J. Zarucchi, 1993. Catalogue of the Flowering Plants and Gymnosperms of Peru. Monogr. Syst. Bot. Missouri Bot. Gard. 45.

Brummitt & Powell, 1992. Authors of Plant Names. Royal Botanic Gardens, Kew.

Kubitzki, K., ed. 1990. The Families and Genera of Vascular Plants, Vol. 1: Pteridophytes and Gymnosperms, Vol. editors K. U. Kramer & P. S. Green. Springer-Verlag, Berlin Heidelberg.

Tryon, R. M. & R. Stolze, ed. 1989-1994. Pteridophyta of Peru, Parts I-VI, in Fieldiana, Bot. n.s. nos. 20: 1-145. (1989), 22: 1-128. (1989), 27: 1-176. (1991), 29: 1-80. (1992), 32: 1-190. (1993), 34: 1-123. (1994).

Weber, W. A. 1982. Mnemonic three-letter acronyms for the families of vascular plants: a device for more effective herbarium curation. Taxon 31: 74-88.


Apéndice 1. Abreviaciones para las familias de plantas vasculares (Peru) Adaptada de Weber, W. A. 1982, Taxon 31: 74-88.

ACA ACANTHACEAE
AHT ACHATOCARPACEAE
ACT ACTINIDIACEAE
AGA AGAVACEAE
AIZ AIZOACEAE
ALI ALISMATACEAE
ALS ALSTROEMERIACEAE
ALZ ALZATEACEAE
AMA AMARANTHACEAE
AML AMARYLLIDACEAE
ANA ANACARDIACEAE
ANS ANISOPHYLLEACEAE
ANN ANNONACEAE
API APIACEAE
APO APOCYNACEAE
AQF AQUIFOLIACEAE
ARA ARACEAE
ARL ARALIACEAE
ARU ARAUCARIACEAE
ARE ARECACEAE
ARS ARISTOLOCHIACEAE
ASC ASCLEPIADACEAE
ASL ASPLENIACEAE
AST ASTERACEAE
AZL AZOLLACEAE
BNP BALANOPHORACEAE
BLS BALSAMINACEAE
BAS BASELLACEAE
BAT BATACEAE
BEG BEGONIACEAE
BER BERBERIDACEAE
BET BETULACEAE
BIG BIGNONIACEAE
BIX BIXACEAE
BLE BLECHNACEAE
BOM BOMBACACEAE
BOR BORAGINACEAE
BRA BRASSICACEAE
BML BROMELIACEAE
BNL BRUNELLIACEAE
BUD BUDDLEJACEAE
BMN BURMANNIACEAE
BRS BURSERACEAE
BUX BUXACEAE
CAB CABOMBACEAE
CAC CACTACEAE
CSL CAESALPINIACEAE
CLL CALLITRICHACEAE
CLC CALYCERACEAE
CAM CAMPANULACEAE
CAN CANNABACEAE
CNA CANNACEAE
CPP CAPPARACEAE
CPR CAPRIFOLIACEAE
CRC CARICACEAE
CCR CARYOCARACEAE
CRY CARYOPHYLLACEAE
CEC CECROPIACEAE
CEL CELASTRACEAE
CTP CERATOPHYLLACEAE
CHN CHENOPODIACEAE
CLR CHLORANTHACEAE
CHB CHRYSOBALANACEAE
CLE CLETHRACEAE
CLU CLUSIACEAE
CCH COCHLOSPERMACEAE
COL COLUMELLIACEAE
CMB COMBRETACEAE
CMM COMMELINACEAE
CNN CONNARACEAE
CNV CONVOLVULACEAE
CRR CORIARIACEAE
COR CORNACEAE
COT COSTACEAE
CRS CRASSULACEAE
CUC CUCURBITACEAE
CUN CUNONIACEAE
CUP CUPRESSACEAE
CUS CUSCUTACEAE
CTH CYATHEACEAE
CCD CYCADACEAE
CYC CYCLANTHACEAE
CYP CYPERACEAE
CYR CYRILLACEAE
DAV DAVALLIACEAE
DST DENNSTAEDTIACEAE
DLP DIALYPETALANTHACEAE
DCH DICHAPETALACEAE
DCK DICKSONIACEAE
DLL DILLENIACEAE
DSC DIOSCOREACEAE
DRS DROSERACEAE
DRY DRYOPTERIDACEAE
EBN EBENACEAE
ELC ELAEOCARPACEAE
ELT ELATINACEAE
EPH EPHEDRACEAE
EQU EQUISETACEAE
ERE EREMOLEPIDACEAE
ERI ERICACEAE
ERO ERIOCAULACEAE
ERX ERYTHROXYLACEAE
EUP EUPHORBIACEAE
FAB FABACEAE
FAG FAGACEAE
FLC FLACOURTIACEAE
FNK FRANKENIACEAE
FUM FUMARIACEAE
GEN GENTIANACEAE
GER GERANIACEAE
GSN GESNERIACEAE
GNK GINKGOACEAE
GLC GLEICHENIACEAE
GNE GNETACEAE
GMM GRAMMITIDACEAE
GRS GROSSULARIACEAE
GNN GUNNERACEAE
HAE HAEMODORACEAE
HAL HALORAGACEAE
HLC HELICONIACEAE
HRN HERNANDIACEAE
HPC HIPPOCRATEACEAE
HUM HUMIRIACEAE
HDR HYDRANGEACEAE
HDC HYDROCHARITACEAE
HYD HYDROPHYLLACEAE
HMP HYMENOPHYLLACEAE
HYP HYPERICACEAE
ICC ICACINACEAE
IRI IRIDACEAE
ISO ISOETACEAE
JUG JUGLANDACEAE
JUL JULIANIACEAE
JUN JUNCACEAE
JCG JUNCAGINACEAE
KRM KRAMERIACEAE
LCS LACISTEMATACEAE
LAM LAMIACEAE
LAU LAURACEAE
LCY LECYTHIDACEAE
LMN LEMNACEAE
LNN LENNOACEAE
LNT LENTIBULARIACEAE
LIL LILIACEAE
LMC LIMNOCHARITACEAE
LIN LINACEAE
LOA LOASACEAE
LOB LOBELIACEAE
LOG LOGANIACEAE
LOM LOMARIOPSIDACEAE
LPH LOPHOSORIACEAE
LOR LORANTHACEAE
LXS LOXOMATACEAE
LYC LYCOPODIACEAE
LYT LYTHRACEAE
MLH MALESHERBIACEAE
MLP MALPIGHIACEAE
MLV MALVACEAE
MRN MARANTACEAE
MTT MARATTIACEAE
MRC MARCGRAVIACEAE
MSL MARSILEACEAE
MAR MARTYNIACEAE
MAY MAYACACEAE
MLS MELASTOMATACEAE
MEL MELIACEAE
MNS MENISPERMACEAE
MNY MENYANTHACEAE
MTX METAXYACEAE
MIM MIMOSACEAE
MOL MOLLUGINACEAE
MNM MONIMIACEAE
MOR MORACEAE
MUS MUSACEAE
MYR MYRICACEAE
MYS MYRISTICACEAE
MRS MYRSINACEAE
MRT MYRTACEAE
NAJ NAJADACEAE
NPH NEPHROLEPIDACEAE
NOL NOLANACEAE
NYC NYCTAGINACEAE
NYM NYMPHAEACEAE
OCH OCHNACEAE
OLC OLACACEAE
OLE OLEACEAE
OLN OLEANDRACEAE
ONA ONAGRACEAE
OPH OPHIOGLOSSACEAE
OPI OPILIACEAE
ORC ORCHIDACEAE
ORO OROBANCHACEAE
OSM OSMUNDACEAE
OXL OXALIDACEAE
PAP PAPAVERACEAE
PPL PAPILIONACEAE
PAS PASSIFLORACEAE
PED PEDALIACEAE
PHT PHYTOLACCACEAE
PIN PINACEAE
PIP PIPERACEAE
PGY PLAGIOGYRIACEAE
PTG PLANTAGINACEAE
PLB PLUMBAGINACEAE
POA POACEAE
PDC PODOCARPACEAE
PDS PODOSTEMACEAE
PLM POLEMONIACEAE
PGL POLYGALACEAE
PLG POLYGONACEAE
PLP POLYPODIACEAE
PON PONTEDERIACEAE
POR PORTULACACEAE
POT POTAMOGETONACEAE
PRM PRIMULACEAE
PRT PROTEACEAE
PSL PSILOTACEAE
PTR PTERIDACEAE
QII QUIINACEAE
RAF RAFFLESIACEAE
RAN RANUNCULACEAE
RPT RAPATEACEAE
RHM RHAMNACEAE
RHZ RHIZOPHORACEAE
ROS ROSACEAE
RUB RUBIACEAE
RUP RUPPIACEAE
RUT RUTACEAE
SAB SABIACEAE
SAL SALICACEAE
SVN SALVINIACEAE
SAN SANTALACEAE
SAP SAPINDACEAE
SPT SAPOTACEAE
SAX SAXIFRAGACEAE
SCZ SCHIZAEACEAE
SCR SCROPHULARIACEAE
SEL SELAGINELLACEAE
SMR SIMAROUBACEAE
SML SMILACACEAE
SOL SOLANACEAE
STP STAPHYLEACEAE
STR STERCULIACEAE
SRZ STRELITZIACEAE
STY STYRACACEAE
SYM SYMPLOCACEAE
TEA THEACEAE
THL THELYPTERIDACEAE
TEO THEOPHRASTACEAE
THY THYMELAEACEAE
TIL TILIACEAE
TOV TOVARIACEAE
TRG TRIGONIACEAE
TRI TRIURIDACEAE
TRP TROPAEOLACEAE
TNR TURNERACEAE
TYP TYPHACEAE
ULM ULMACEAE
URT URTICACEAE
VAL VALERIANACEAE
VLL VELLOZIACEAE
VRB VERBENACEAE
VIO VIOLACEAE
VIS VISCACEAE
VIT VITACEAE
VTT VITTARIACEAE
VOC VOCHYSIACEAE
WIN WINTERACEAE
XYR XYRIDACEAE
ZAN ZANNICHELLIACEAE
ZIN ZINGIBERACEAE
ZYG ZYGOPHYLLACEAE


Apéndice 2. Familias de los géneros peruanos de Pteridophytas fide Pteridophyta of Peru (Tryon & Stolze, eds., 1989-1994)

PTR Acrostichum
PTR Adiantopsis
PTR Adiantum
CTH Alsophila
SCZ Anemia
VTT Anetium
PTR Anogramma
VTT Antrophyum
ASL Asplenium
DRY Athyrium
SVN Azolla* (AZL)
BLE Blechnum
DST Blotiella
DRY Bolbitis* (LOM)
OPH Botrychium
PLP Campyloneurum
PTR Ceratopteris
PTR Cheilanthes
CTH Cnemidaria
DRY Ctenitis
DCK Culcita
CTH Cyathea
DRY Cyclodium
DRY Cyclopeltis
DRY Cyrtomium
DRY Cystopteris
MTT Danaea
DST Dennstaedtia
DCK Dicksonia
PLP Dicranoglossum
GLC Dicranopteris
DRY Didymochlaena
DRY Diplazium
PTR Doryopteris
DRY Dryopteris
DRY Elaphoglossum* (LOM)
EQU Equisetum
PTR Eriosorus
GLC Gleichenia
PLP Grammitis* (GMM)
VTT Hecistopteris
DRY Hemidictyum
PTR Hemionitis
DST Histiopteris
LYC Huperzia
HMP Hymenophyllum
DST Hypolepis
ISO Isoetes
PTR Jamesonia
DRY Lastreopsis
DST Lindsaea
DRT Lomagramma* (LOM)
DRY Lomariopsis* (LOM)
DST Lonchitis
LPH Lophosoria
LXS Loxsomopsis
LYC Lycopodiella
LYC Lycopodium
SCZ Lygodium
THL Macrothelypteris
MTT Marattia
MSL Marsilea
DRY Megalastrum
MTX Metaxya
PLP Microgramma
DST Microlepia
CTH Nephelea
DAV Nephrolepis* (NPH)
PLP Niphidium
PTR Notholaena
DRY Oleandra* (OLN)
DRY Olfersia
OPH Ophioglossum
OSM Osmunda
DST Paesia
PLP Pecluma
PTR Pellaea
DRY Peltapteris
PTR Pityrogramma
PGY Plagiogyria
PLP Platycerium
PLP Pleopeltis
DRY Polybotrya
PLP Polypodium
DRY Polystichum
PSL Psilotum
DST Pteridium
PTR Pteris
PTR Pterozonium
DRY Rumohra
DST Saccoloma
BLE Salpichlaena
SVN Salvinia
SCZ Schizaea
SEL Selaginella
PLP Solanopteris
CTH Sphaeropteris
DRY Stigmatopteris
DRY Tectaria
THL Thelypteris
PTR Trachypteris
CTH Trichipteris
HMP Trichomanes
DRY Triplophyllum
VTT Vittaria
DRY Woodsia

* Familias reconocidas por Kramer & Green, en Kubitzki 1990.


Apéndice 3. Uso de comandos de dBase

Muchas operaciones de dBase pueden ejecutarse a través del Sistema de Menú. Sin embargo casi todas las operaciones del Menú puede ejecutarse tambien a través de la línea de comandos, y muchas operaciones especiales pueden realizarse utilizando comandos solamente. Debido a que el Sistema de Menú se explica por si mismo, suponemos que no es necesaria su discusión. En cambio, resumiremos el lenguaje útil del comando en la construcción y mantenimiento del especímen y otros tipos de bases de datos. Estos comandos se presentan en la línea de comando, los cuales se obtienen por presionar ESCAPE del Menú Principal. Después de ello, para llegar a la línea de comando del desplegado de base de datos, presione CTRL-END. También puede utilizar ESCAPE, pero esto ocasionará que se pierdan los datos nuevos del registro en uso. Para regresar al desplegado del mend de la línea de comando presione F2.

Apendice 3a. Afirmaciones de rango y de condición

Muchos comandos son modificados por afirmaciones de condición o de rango, los cuales se explican primero y son utilizados en los siguientes ejemplos:

Afirmaciones de RANGO

Afirmaciones "scope" (de rango) son enunciados utilizados con los comandos, los cuales limitan los registros efectuados. Son:

ALL Revisa un archivo completo desde el primer registro
NEXT[n] Desde el registro en uso y revisa un registro n total
REST Inicia con el registro en uso y continua al final del archivo
RECORD[n] El comando se aplica solamente el registro n

CONDICIONES (o "claúsulas FOR")
Cuando utiliza un enunciado de afirmación con la palabra "for" (para) dBase revisa la base de datos completa, empezando con la primera, buscando registros que coincidan con la condición. Las claúsulas de condición son creadas con "operadores," las cuales son:

= igual a
# no igual
$ contenida en

> mayor que
< menor que
>= mayor que o igual a

.AND. Lógico y
.OR. Lógico o
.NOT. Lógico no

Note: Todos estes operadores, incluyendo < y > pueden utilizarse con datos de caracteres alfabéticos o numéricos.

EJEMPLOS DE AFIRMACIONES DE CONDICION

for COLECTOR="Leiva" "Leiva" aparece primero en el campo COLECTOR

for COLECTOR#"Leiva" "Leiva" no es la primer palabra del campo del COLECTOR

for "Cachil"$LOCAL "Cachil" aparece en el cualquier orden en campo de LOCAL

for DEPTO="CA".or.DEPTO="PI" El campo DEPTO contiene CA o PI

for DEPTO="CA".and.GENERO="Linum" Todos los registros de Linum de Cajamarca

for NUMERO>8347 Todos los registros con NUMERO mayor que 8347

Condiciones WHILE

La palabara WHILE (mientras) puede ser sustituida por la palabra FOR (para) en una claúsula condicional. Esto provoca que dBASE inicie la busqueda en el registro actual y continue hacia abajo a través del archivo hasta que encuentra un registro el cual no reune la condición requerida. Es útil, "REPLACE" (reemplazar) por ejemplo, para acelerar una operación al corregir un archivo indexado. Las condiciones WHILE y FOR también pueden utilizarse juntas.

Apendice 3b. Indice de Comandos dBase elegidos

La información mandatoria en el comando se muestra en la primera línea. Afirmaciones opcionales se muestran en las líneas con sangría.
Usted puede abreviar la mayoría de los comandos con cuatro letras y dBase las reconocerá.

APPEND Presenta un registro vacRo para captura de datos al final de archivo.

APPEND FROM Copia el archivo al final del archivo en uso.

BROWSE Despliega los registros con campos en columnas verticales

CALCULATE Vea sección F-3.

CONTINUE Vea sección D-3.2.

COPY TO Copia el archivo en uso al archivo del nombre elegido. DELIMITED Genera un archivo de texto ASCII(para exportar) FIELDS Copia solamente campos especficos afirmación SCOPE
condición FOR
condición WHILE

Ejemplo:
.copy to leiva93 delimited fields genero,especies,colector,numero for ano>1992

Copia a un archivo de ASCII LEIVA93.TXT los campos enlistados, para los registros colectados después de 1992.

COUNT Vea sección F-1

CREATE REPORT Vea sección G-2

DIR Enlista los archivos de base de datos en el directorio en uso
DIR *.* Enlista todos los archivos del directorio en uso
DIR A:*.* Enlista todos los archivos en el drive A

EDIT Despliega los registros con los campos en hileras horizontales

ERASE Borra el archivo especificado (use nombre completo de archivo)

GOTO[END,BOTTOM,] El cursor va a una localización específica en el archivo.

LOCATE FOR Vea sección D-3.2.

LIST Vea sección G-1.

PACK Borra permanentemente los registros que se marcaron para eliminar.

REPLACE... Vea sección E-2.

REPORT FORM Vea sección G-2

SEEK Vea sección D-2.2 & 3

SET CARRY ON/OFF Vea sección B.br> SET CARRY TO

SET DIRECTORY TO Temporalmente cambia el directorio en uso de dBase

SET EXACT ON/OFF Vea sección D-2.3.

SET FIELDS TO Vea sección C.
SET FILTER TO

SET NEAR ON/OFF Vea sección D-2.3.

SET ORDER TO Vea sección D-2.1.

SORT TO ON Crea un nuevo archivo de base de datos ordenado en los campos seleccionados.

Afirmación SCOPE
Condición FOR
Condición WHILE

ZAP Borra permanentemente todos los registros del archivo, guardando la estructura solamente.

Apéndice 4. Un programa de conversión de datos para etiquetas de especímenes

Apéndice 4a. Programa de etiquetas (LABELS.PRG)


1 select 1
2 use etiquet2
3 append from etiqueta
4 replace prov with "Prov. "+rtrim(prov)+"." for prov#" "
5 replace elevacion with "Alt. "+ltrim(elevacion)+" m."
for len(ltrim(elevacion))>0.and.elev2=" "
6 replace elevacion with "Alt. "+ltrim(elevacion)+""+ltrim(elev2)+" m."
for len(ltrim(elevacion))>0.and.elev2#" "
7 replace cordlat with " " for cordlat=" 0"
8 replace cordlon with " " for cordlon=" 0"
9 replace cordlat with "["+ltrim(substr(cordlat,6,2))+" "+substr(cordlat,8)+"'S;"
for cordlat#" "
10 replace cordlon with " "+ltrim(substr(cordlon,6,2))+" "+substr(cordlon,8)+"'W]" for cordlon#” “
11 replace numero with ltrim(numero) all
12 replace determin with "det. "+rtrim(determin) for determin#" "
13 replace col_ad with "con "+rtrim(col_ad) for col_ad#" "
14 do family
15 do depto
16 copy to etiqueta delimited
17 delete all
18 pack
19 close databases
20 TEXT
21 ETIQUETA.TXT has been created in the current dBase directory and is ready
22 for conversion.
23 ENDTEXT
24 return
25
26 *translates 3letter family abbrev. to full name
27 PROCEDURE FAMILY
28 select 1
29 use etiquet2
30 select 3
31 use families order famabb
32 select 1
33 scan for familia#" "
34 store rtrim(familia) to mabb
35 select 3
36 if seek(mabb)
37 store famnames to mfull
38 select 1
39 replace familia with mfull
40 else
41 select 1
42 endif
43 endscan
44 return
45
46 *translates 4 letter dept. abbrev. to "Depto."+ full name
47 PROCEDURE DEPTO
48 select 1
49 use etiquet2
50 select 3
51 use depto order deptabb
52 select 1
53 scan for depto#" "
54 store rtrim(depto) to mabb
55 select 3
56 if seek(mabb)
57 store decode to mfull
58 select 1
59 replace depto with mfull
60 else
61 select 1
62 endif
63 endscan
64 return


Apendice 4b. Estructura de archivos auxiliares para el programa LABELS.PRG

ETIQUETA.DBF - Vea estructura de DETBASE

ETIQUET2.DBF
NOTE: Numeros de campos son los de Archivo de Fusión Primário (Forma).

Campo Tipo Longitud

1 FAMILIA C 25
2 GENERO C 20
3 ESPECIES C 20
4 AUTOR C 40
5 VAR_SSP C 4
6 SUBESPECIE C 20
7 AUTOR2 C 40
8 DEPTO C 19
9 PROV C 27
10 LOCAL C 150
11 HABITAT C 100
12 OBSERV C 254
13 COLECTOR C 30
14 COL_AD C 55
15 NUMERO C 8
16 SUFFIX C 3
17 DIA C 2
18 MES C 3
19 ANO N 4
20 ELEVACION C 18
21 ELEV2 C 4
22 CORDLAT C 9
23 CORDLON C 9
24 DETERMIN C 30
___________________________________
Total Size 895

DEPTO.DBF

1 DEPTO C 2
2 DECODE C 19



FAMILIES.DBF

1 FAMILIA C 3
2 FAMNAMES C 25

Fig. 1. Estructura del archivo DETBASE.DBF con muestra exemplar

Campo Tipo* Longitud

1 CLASE C 3 MON
2 FAMILIA C 3 POA
3 GENERO C 20 Bromus
4 ESPECIES C 20 lanatus
5 AUTOR C 40 Kunth
6 VAR_SSP C 4 var.
7 SUBESPECIE C 20 ineditus
8 AUTOR2 C 40 Einstein
9 AFF_CF C 8 vel aff.
10 DEPTO C 2 CA
11 SITIO C 2 3
12 PROV C 20 Cajamarca
13 LOCAL C 150 Coymolache, ruta Cajamarca-Hualgayoc.
14 HABITAT C 100 Jalca graminosa.
15 OBSERV C 254 Perenne, láminas planas, panícula nutante.
16 COLECTOR C 30 I. Sánchez Vega
17 COL_AD C 50 W. Ruíz Vigo
18 NUMERO N 8 2049
19 SUFFIX C 3 a
20 HERBARIO C 18 CPUN,F,OS
21 DUPL N 2 3
22 DIA C 2 1
23 MES C 3 Jul
24 ANO N 4 1977
25 ELEVACION N 4 3850
26 ELEV2 N 4 4000
27 CORDLAT N 4 652
28 CORDLON N 4 7835
29 NOTAS C 40 primera coleccíon de Peru
30 DETERMIN C 25 I. Sánchez Vega, 1978
31 ENVIOS C 3 NO
32 ANNOT C 1 A
__________________________________
Longitud de RegistroTotal 892

* C = Caracter; N = Numérico



Fig. 2. Archivo primário de fusión (forma) y muestra de etiqueta

Muestra de Forma para Etiquetas de Espécimenes:
Note: Numeros de campos son los de ETIQUET2.DBF

PLANTAS DEL PERU
Universidad Nacional de Cajamarca
(CPUN)
FIELD~1

FIELD~2 FIELD~3 FIELD~4 FIELD~5 FIELD~6 FIELD~7

FIELD~24

FIELD~8 FIELD~9 FIELD~10 FIELD~11
FIELD~20 FIELD~22FIELD~23

FIELD~12

FIELD~17 FIELD~18 FIELD~19

FIELD~13 FIELD~15FIELD~16
FIELD~14

PAGEOFF



Muestra de Etiqueta:


[Ambientes] [Familias de Plantas]
[Base de Datos] [Publicaciones] [J. Francis Macbride & Flora de Perú Series]
[Personal & Colaboradores del Proyecto]