2002-06-06 09:23 UTC+0300 Chen Kedem <niki@actcom.co.il>

This commit is contained in:
Chen Kedem
2002-06-06 06:24:04 +00:00
parent e7f150194c
commit be7fe81347
8 changed files with 291 additions and 285 deletions

View File

@@ -8,6 +8,18 @@
2002-12-01 23:12 UTC+0100 Foo Bar <foo.bar@foobar.org>
*/
2002-06-06 09:23 UTC+0300 Chen Kedem <niki@actcom.co.il>
* doc/dirstruc.txt
+ Add notes for the btree directory
* doc/gmake.txt
* doc/transfrm.txt
* doc/es/dbstrux.txt
* doc/es/harbext.txt
* doc/es/idle.txt
* doc/es/tracing.txt
! Replace embedded TABs with SPACEs
2002-06-05 20:52 UTC-0800 Ron Pinkas <ron@ronpinkas.com>
* make_b32.bat
- Commented SET BISON_SIMPLE line as it causes incompatibility with current version of Bison.

View File

@@ -46,6 +46,12 @@ in order to remove empty directories)
| | |
| | +---test - Test programs.
| |
| +---btree - BTree library.
| | |
| | +---doc - HB_BTree C and Harbour API documentation.
| | |
| | +---test - HB_BTree api test programs.
| |
| +---delphi - Integration with Borland Delphi.
| | |
| | +---hbdll - Accessing Harbour DLL from Delphi.

View File

@@ -12,7 +12,7 @@
* CREATE FROM, __FLEDIT(), __dbStructFilter()
*
* Copyright 2000 Alejandro de Gárate <alex_degarate@hotmail.com>
* Documentación en Español de:
* Documentación en Español de:
* __dbCopyStruct(), COPY STRUCTURE, __dbCopyXStruct(),
* COPY STRUCTURE EXTENDED, __dbCreate(), CREATE,
* CREATE FROM, __FLEDIT(), __dbStructFilter()
@@ -35,32 +35,32 @@
* <cNombreArch> es el nombre de una nueva base de datos a crear.
* (.dbf) es la extensión por defecto si ninguna es especificada.
*
* <aListaCampos> es un array donde cada elemento es un nombre de
* <aListaCampos> es un array donde cada elemento es un nombre de
* campo.
* Los nombres pueden ser especificados en mayúsculas ó minúsculas.
* $RETURNS$
* __dbCopyStruct() siempre retorna NIL.
* $DESCRIPTION$
* La función __dbCopyStruct() crea una nueva base de datos vacía,
* con una estructura que esta basada en la base de datos actualmente
* abierta en este área de trabajo. Si <aListaCampos> esta vacía,
* el archivo recientemente creado podría tener la misma estructura
* que la base de datos actualmente abierta. De otro modo el nuevo
* archivo podría contener sólo campos que coincidan exactamente
* La función __dbCopyStruct() crea una nueva base de datos vacía,
* con una estructura que esta basada en la base de datos actualmente
* abierta en este área de trabajo. Si <aListaCampos> esta vacía,
* el archivo recientemente creado podría tener la misma estructura
* que la base de datos actualmente abierta. De otro modo el nuevo
* archivo podría contener sólo campos que coincidan exactamente
* con <aListaCampos>.
*
* __dbCopyStruct() puede ser usada para crear un subconjunto de
* la base de datos actualmente abierta, basada en una lista dada
* __dbCopyStruct() puede ser usada para crear un subconjunto de
* la base de datos actualmente abierta, basada en una lista dada
* de campos.
*
* El comando COPY STRUCTURE es pre-procesado en la función
* El comando COPY STRUCTURE es pre-procesado en la función
* __dbCopyStruct() durante el tiempo de compilación.
* $EXAMPLES$
* // Crea un nuevo archivo que contiene la misma estructura.
* USE TEST
* __dbCopyStruct( "MyCopy.DBF" )
*
* // Crea un nuevo archivo que contiene parte de la estructura
* // Crea un nuevo archivo que contiene parte de la estructura
* // original
* LOCAL aLista
* USE TEST
@@ -69,10 +69,10 @@
* $STATUS$
* R
* $COMPLIANCE$
* __dbCopyStruct() trabaja exactamente como la función de CA-Clipper,
* __dbCopyStruct() trabaja exactamente como la función de CA-Clipper,
* __dbCopyStruct().
* $PLATFORMS$
* Todas
* Todas
* $FILES$
* La librería es rdd
* $SEEALSO$
@@ -91,26 +91,26 @@
* $SYNTAX$
* COPY STRUCTURE TO <xcNombreArchivo> [FIELDS <campo,...>]
* $ARGUMENTS$
* <b>TO <xcNombreArchivo></b> es el nombre del nuevo archivo de
* base de datos a crear. (.dbf) es la extensión por defecto si
* <b>TO <xcNombreArchivo></b> es el nombre del nuevo archivo de
* base de datos a crear. (.dbf) es la extensión por defecto si
* ninguna es dada.
*
* Esta puede ser especificada como un literal de nombre de archivo
* Esta puede ser especificada como un literal de nombre de archivo
* ó como una expresión de caracteres encerrada entre paréntesis.
*
* <b>FIELDS <campo,...></b> es una lista opcional de nombres de
* campos a copiar desde la base de datos actualmente abierta en
* el orden especificado, por defecto son todos los campos.
* <b>FIELDS <campo,...></b> es una lista opcional de nombres de
* campos a copiar desde la base de datos actualmente abierta en
* el orden especificado, por defecto son todos los campos.
* Los nombres pueden ser especificados en mayúsculas ó minúsculas.
* $DESCRIPTION$
* COPY STRUCTURE crea una nueva base de datos vacía con una estructura
* que esta basada en la base de datos actualmente abierta en este
* COPY STRUCTURE crea una nueva base de datos vacía con una estructura
* que esta basada en la base de datos actualmente abierta en este
* área de trabajo.
*
* COPY STRUCTURE puede ser usada para crear un subconjunto de la base
* de datos actualmente abierta, basada en una lista dada de campos.
*
* El comando COPY STRUCTURE es pre-procesado en la función
* El comando COPY STRUCTURE es pre-procesado en la función
* __dbCopyStruct() durante el tiempo de compilación.
* $EXAMPLES$
* // Crea un nuevo archivo que contiene la misma estructura.
@@ -123,9 +123,9 @@
* $STATUS$
* R
* $COMPLIANCE$
* COPY STRUCTURE trabaja exactamente como en CA-Clipper
* COPY STRUCTURE trabaja exactamente como en CA-Clipper
* $PLATFORMS$
* Todas
* Todas
* $SEEALSO$
* COPY STRUCTURE EXTENDED,DBCREATE(),DBSTRUCT(),__dbCopyStruct(),__dbCopyXStruct(),__dbCreate(),__dbStructFilter()
* $END$
@@ -145,12 +145,12 @@
* <cNombreArchivo> es el nombre del archivo de definición de destino
* a crear, (*.dbf) es la extensión por defecto si ninguna es dada.
* $RETURNS$
* __dbCopyXStruct() retorna (.F.) si ninguna base de datos está en
* uso en el área actual de trabajo, (.T.) si el proceso fué exitoso,
* ó un error en tiempo de ejecución si la operación de creación del
* __dbCopyXStruct() retorna (.F.) si ninguna base de datos está en
* uso en el área actual de trabajo, (.T.) si el proceso fué exitoso,
* ó un error en tiempo de ejecución si la operación de creación del
* archivo ha fallado.
* $DESCRIPTION$
* La función __dbCopyXStruct() crea una nueva base de datos llamada
* La función __dbCopyXStruct() crea una nueva base de datos llamada
* <cNombreArchivo> con una estructura predefinida (también llamado
* "archivo de estructura extendida"):
*
@@ -163,13 +163,13 @@
* FIELD_DEC N 3 0
* </table>
*
* Cada registro en el nuevo archivo contiene información acerca de
* un campo en el archivo original. CREATE FROM podría ser usado para
* Cada registro en el nuevo archivo contiene información acerca de
* un campo en el archivo original. CREATE FROM podría ser usado para
* crear la base de datos desde el archivo de estructura extendida.
*
* Por razones prehistóricas de compatibilidad, los campos de
* Por razones prehistóricas de compatibilidad, los campos de
* caracteres mayores de 255 caracteres son tratados en una forma
* especial al escribir parte de la longitud en el campo FIELD_DEC
* especial al escribir parte de la longitud en el campo FIELD_DEC
* de acuerdo a la siguiente fórmula (Esto es hecho internamente):
*
* <fixed>
@@ -186,25 +186,25 @@
* FIELD->FIELD_LEN )
* </fixed>
*
* El comando COPY STRUCTURE EXTENDED es pre-procesado en la función
* El comando COPY STRUCTURE EXTENDED es pre-procesado en la función
* __dbCopyXStruct() durante el tiempo de compilación.
* $EXAMPLES$
* // Abre la base de datos, y copia su estructura a un nuevo archivo.
* // Abre la base de datos, y copia su estructura a un nuevo archivo.
* USE Test
* __dbCopyXStruct( "TestEstr" )
*
* // Abre el nuevo archivo y lista todos sus registros
* USE TestEstr
* USE TestEstr
* LIST
*
* $TESTS$
* $STATUS$
* R
* $COMPLIANCE$
* __dbCopyXStruct() trabaja exactamente como la función de CA-Clipper,
* __dbCopyXStruct() trabaja exactamente como la función de CA-Clipper,
* __dbCopyXStruct().
* $PLATFORMS$
* Todas
* Todas
* $FILES$
* La librería es rdd
* $SEEALSO$
@@ -224,13 +224,13 @@
* COPY STRUCTURE EXTENDED TO <xcNombreArchivo>
* $ARGUMENTS$
* <b>TO <xcNombreArchivo></b> es el nombre del nuevo archivo de base
* de datos a crear, (.dbf) es la extensión por defecto si ninguna
* es dada.
* Esta puede ser especificada como un literal de nombre de archivo
* de datos a crear, (.dbf) es la extensión por defecto si ninguna
* es dada.
* Esta puede ser especificada como un literal de nombre de archivo
* ó como una expresión de caracteres encerrada entre paréntesis.
* $DESCRIPTION$
* COPY STRUCTURE EXTENDED crea una nueva base de datos llamada
* <cNombreArchivo> con una estructura predefinida (también llamada
* COPY STRUCTURE EXTENDED crea una nueva base de datos llamada
* <cNombreArchivo> con una estructura predefinida (también llamada
* "archivo de estructura extendida"):
*
* <table>
@@ -245,12 +245,12 @@
* <fixed>
*
* Cada registro en el nuevo archivo contiene información acerca de
* un campo en el archivo original. CREATE FROM podría ser usado para
* un campo en el archivo original. CREATE FROM podría ser usado para
* crear la base de datos desde el "archivo de estructura extendida".
*
* Por razones prehistóricas de compatibilidad, los campos de
* caracteres mayores de 255 caracteres son tratados en una forma
* especial al escribir parte de la longitud en el campo FIELD_DEC
* Por razones prehistóricas de compatibilidad, los campos de
* caracteres mayores de 255 caracteres son tratados en una forma
* especial al escribir parte de la longitud en el campo FIELD_DEC
* de acuerdo a la siguiente fórmula (Esto es hecho internamente):
*
* <fixed>
@@ -267,16 +267,16 @@
* FIELD->FIELD_LEN )
* </fixed>
*
* El comando COPY STRUCTURE EXTENDED es pre-procesado en la función
* El comando COPY STRUCTURE EXTENDED es pre-procesado en la función
* __dbCopyXStruct() durante el tiempo de compilación.
* $EXAMPLES$
* // Abre la base de datos, y copia su estructura a un nuevo archivo.
* // Abre la base de datos, y copia su estructura a un nuevo archivo.
* USE Test
* __dbCopyXStruct( "TestEstr" )
*
* // Abre el nuevo archivo y lista todos sus registros
* USE TestEstr
* USE TestEstr
* LIST
*
* $STATUS$
@@ -284,7 +284,7 @@
* $COMPLIANCE$
* COPY STRUCTURE EXTENDED trabaja exactamente como en CA-Clipper.
* $PLATFORMS$
* Todas
* Todas
* $SEEALSO$
* COPY STRUCTURE,CREATE,CREATE FROM,DBCREATE(),DBSTRUCT(),__dbCopyStruct(),__dbCopyXStruct(),__dbCreate()
* $END$
@@ -299,47 +299,47 @@
* $ONELINER$
* Crea una estructura extendida ó usa una para crear otro archivo
* $SYNTAX$
* __dbCreate( <cNombreArchivo>, [<cDesdeArchivo>], [<cNombreRDD>],
* __dbCreate( <cNombreArchivo>, [<cDesdeArchivo>], [<cNombreRDD>],
* [<lNuevo>], [<cAlias>] ) --> lUsado
* $ARGUMENTS$
* <cNombreArchivo> es el nombre del archivo destino a crear y luego
* abrir, (.dbf) es la extensión por defecto si ninguna es
* <cNombreArchivo> es el nombre del archivo destino a crear y luego
* abrir, (.dbf) es la extensión por defecto si ninguna es
* especificada.
*
* <cDesdeArchivo> es el nombre de una estructura extendida opcional
* desde la cual el archivo destino <cNombreArchivo> va a ser
* <cDesdeArchivo> es el nombre de una estructura extendida opcional
* desde la cual el archivo destino <cNombreArchivo> va a ser
* construido.
* Si es omitida, un nuevo archivo de estructura extendida vacía con
* el nombre <cNombreArchivo> es creado y abierto, en el área de
* Si es omitida, un nuevo archivo de estructura extendida vacía con
* el nombre <cNombreArchivo> es creado y abierto, en el área de
* trabajo actual.
*
* <cNombreRDD> es el nombre del RDD para crear el archivo destino,
* <cNombreRDD> es el nombre del RDD para crear el archivo destino,
* Si es omitido, es usado el RDD por defecto.
*
* <lNuevo> es una expresión lógica opcional, (.T.) abre el nombre
* del archivo de destino <cNombreArchivo> en la próxima área
* disponible sin uso y hace de esta el área actual. (.F.) abre el
* archivo de destino en el área de trabajo actual.
* El valor por defecto es (.F.). El valor de <lNuevo> es ignorado si
* <lNuevo> es una expresión lógica opcional, (.T.) abre el nombre
* del archivo de destino <cNombreArchivo> en la próxima área
* disponible sin uso y hace de esta el área actual. (.F.) abre el
* archivo de destino en el área de trabajo actual.
* El valor por defecto es (.F.). El valor de <lNuevo> es ignorado si
* <cDesdeArchivo> no es especificado.
*
* <cAlias> es un alias opcional para usar el archivo de destino con
* el comando USE. Si no es especificado, alias esta basado en el
* <cAlias> es un alias opcional para usar el archivo de destino con
* el comando USE. Si no es especificado, alias esta basado en el
* nombre <cNombreArchivo>.
* $RETURNS$
* __dbCreate() retorna (.T.) si hay una base de datos usada en el
* área actual de trabajo (esta podría ser la nueva area de trabajo
* __dbCreate() retorna (.T.) si hay una base de datos usada en el
* área actual de trabajo (esta podría ser la nueva area de trabajo
* elegida), ó (.F.) si no hay ninguna base de datos usada.
* Note que si hubo éxito debería ser devuelto (.F.), pero si hay
* alguna falla probablemente se termine con un error en tiempo de
* ejecución y no con un valor de (.F.)
* Note que si hubo éxito debería ser devuelto (.F.), pero si hay
* alguna falla probablemente se termine con un error en tiempo de
* ejecución y no con un valor de (.F.)
* $DESCRIPTION$
* La función __dbCreate() funciona en dos modos dependiendo del valor
* La función __dbCreate() funciona en dos modos dependiendo del valor
* de <cDesdeArchivo>:
*
* <b>1)</b> Si <cDesdeArchivo> está vacío o no está especificado, un
* nuevo archivo de estructura extendida vacía, con el nombre
* <cNombreArchivo> es creado y luego abierto, en el área actual de
* nuevo archivo de estructura extendida vacía, con el nombre
* <cNombreArchivo> es creado y luego abierto, en el área actual de
* trabajo (<lNuevo> es ignorado).
* El nuevo archivo tiene la siguiente estructura:
*
@@ -359,14 +359,14 @@
* asume como un archivo de estructura extendida donde cada registro
* contiene al menos los siguientes campos (en cualquier orden):
* FIELD_NAME, FIELD_TYPE, FIELD_LEN y FIELD_DEC. Cualquier otro campo
* es ignorado. Con esta información el archivo <cNombreArchivo> es
* es ignorado. Con esta información el archivo <cNombreArchivo> es
* creado y abierto en el nuevo area de trabajo (de acuerdo a <lNuevo>)
* si esta es una nueva área de trabajo, esta se vuelve la actual.
*
* Por razones prehistóricas de compatibilidad, los campos de
* caracteres del archivo de estructura extendida los cuales sean
* mayores de 255 caracteres deberían ser tratados en una forma
* especial al escribir parte de la longitud en el campo FIELD_DEC
* Por razones prehistóricas de compatibilidad, los campos de
* caracteres del archivo de estructura extendida los cuales sean
* mayores de 255 caracteres deberían ser tratados en una forma
* especial al escribir parte de la longitud en el campo FIELD_DEC
* de acuerdo a la siguiente fórmula:
*
* <fixed>
@@ -374,12 +374,12 @@
* FIELD->FIELD_LEN := ( nLength % 256 )
* </fixed>
*
* El comando CREATE FROM es pre-procesado en la función
* El comando CREATE FROM es pre-procesado en la función
* __dbCopyStruct() durante el tiempo de compilación.
* $EXAMPLES$
* // Crea un nuevo archivo de estructura extendida, agrega algunos
* // registros y luego crea un nueva base de datos desde este
* // Crea un nuevo archivo de estructura extendida, agrega algunos
* // registros y luego crea un nueva base de datos desde este
* // archivo (CREATE FROM)
*
* __dbCreate( "molde" )
@@ -405,7 +405,7 @@
* $COMPLIANCE$
* __dbCreate() trabaja exactamente como en CA-Clipper.
* $PLATFORMS$
* Todas
* Todas
* $FILES$
* La librería es rdd
* $SEEALSO$
@@ -424,19 +424,19 @@
* $SYNTAX$
* CREATE <xcNombreArchivo> [VIA <xcNombreRDD>] [ALIAS <xcAlias>]
* $ARGUMENTS$
* <xcNombreArchivo> es el nombre del archivo de de destino a crear
* <xcNombreArchivo> es el nombre del archivo de de destino a crear
* y abrir, (*.dbf) es la extensión por defecto si ninguna es dada.
* Este puede ser especificada un literal de nombre de archivo ó
* Este puede ser especificada un literal de nombre de archivo ó
* como una expresion de caracteres encerrada entre paréntesis.
*
* <b>VIA <xcNombreRDD></b> es el nombre del RDD con el cual se va
* a crear el archivo de destino. Si es omitido, el RDD por defecto
* es usado.
* Este puede ser especificado como un literal de nombre de archivo
* a crear el archivo de destino. Si es omitido, el RDD por defecto
* es usado.
* Este puede ser especificado como un literal de nombre de archivo
* ó como una expresión de caracteres encerrada entre paréntesis.
*
* <cAlias> es un alias opcional para usar el archivo de destino con
* el comando USE. Si no es especificado, alias esta basado en el
* <cAlias> es un alias opcional para usar el archivo de destino con
* el comando USE. Si no es especificado, alias esta basado en el
* nombre <cNombreArchivo>.
* $DESCRIPTION$
* El comando CREATE, crea un nuevo archivo de estructura extendida
@@ -455,7 +455,7 @@
* El comando CREATE es pre-procesado en la función __dbCopyStruct()
* durante el tiempo de compilación y usa este modo.
* $EXAMPLES$
* // Crea un nuevo archivo de estructura extendida, agrega algunos
* // Crea un nuevo archivo de estructura extendida, agrega algunos
* // registros y luego crea un nueva base de datos desde este archivo
* // (CREATE FROM)
*
@@ -480,9 +480,9 @@
* $STATUS$
* R
* $COMPLIANCE$
* CREATE trabaja exactamente como en CA-Clipper.
* CREATE trabaja exactamente como en CA-Clipper.
* $PLATFORMS$
* Todas
* Todas
* $SEEALSO$
* COPY STRUCTURE,COPY STRUCTURE EXTENDED,CREATE FROM,DBCREATE(),DBSTRUCT(),__dbCopyStruct(),__dbCopyXStruct(),__dbCreate()
* $END$
@@ -497,47 +497,47 @@
* $ONELINER$
* Crea una base de datos desde un archivo de estructura extendida
* $SYNTAX$
* CREATE <xcNombreArchivo> FROM <xcDesdeArchivo> [VIA <xcNombreRDD>]
* CREATE <xcNombreArchivo> FROM <xcDesdeArchivo> [VIA <xcNombreRDD>]
* [NEW] [ALIAS <xcAlias>]
* $ARGUMENTS$
* <xcNombreArchivo> es el nombre del archivo de de destino a crear
* <xcNombreArchivo> es el nombre del archivo de de destino a crear
* y abrir, (*.dbf) es la extensión por defecto si ninguna es dada.
* Este puede ser especificada un literal de nombre de archivo ó
* Este puede ser especificada un literal de nombre de archivo ó
* como una expresión de caracteres encerrada entre paréntesis.
*
* <b>FROM <xcDesdeArchivo></b> es el nombre del archivo de estructura
* extendida desde la cual el archivo de destino va a ser construido.
* Este puede ser especificado como un literal de nombre de archivo
* Este puede ser especificado como un literal de nombre de archivo
* ó como una expresión de caracteres encerrada entre paréntesis.
*
* <b>VIA <xcNombreRDD></b> es el nombre del RDD con el cual se va
* a crear el archivo de destino. Si es omitido, el RDD por defecto
* es usado.
* Este puede ser especificado como un literal de nombre de archivo
* a crear el archivo de destino. Si es omitido, el RDD por defecto
* es usado.
* Este puede ser especificado como un literal de nombre de archivo
* ó como una expresión de caracteres encerrada entre paréntesis.
*
* <b>NEW</b> abre el nombre del archivo de destino <cNombreArch> en
* la próxima área disponible sin uso y hace de ésta el área actual.
* Si es omitido, abre el archivo de destino en el área de trabajo
* actual.
* Si es omitido, abre el archivo de destino en el área de trabajo
* actual.
*
* <b>ALIAS <xcAlias></b> es el alias opcional del archivo de destino
* para usar con el comando USE. Si ninguno es especificado el alias
* esta basado en el nombre <cNombreArchivo>.
* $DESCRIPTION$
* El comando CREATE FROM abre un archivo de estructura extendida
* <xcDesdeArchivo> donde cada registro contiene al menos los
* siguientes campos (en cualquier orden):
* <xcDesdeArchivo> donde cada registro contiene al menos los
* siguientes campos (en cualquier orden):
* FIELD_NAME, FIELD_TYPE, FIELD_LEN y FIELD_DEC. Cualquier otro campo
* es ignorado. Con esta información el archivo <cNombreArchivo> es
* creado y abierto en el nuevo area de trabajo (de acuerdo a la
* es ignorado. Con esta información el archivo <cNombreArchivo> es
* creado y abierto en el nuevo area de trabajo (de acuerdo a la
* cláusula NEW) si ésta es una nueva área de trabajo, esta se vuelve
* la actual.
*
* Por razones prehistóricas de compatibilidad, los campos de
* caracteres del archivo de estructura extendida los cuales sean
* mayores de 255 caracteres deberían ser tratados en una forma
* especial al escribir parte de la longitud en el campo FIELD_DEC
* Por razones prehistóricas de compatibilidad, los campos de
* caracteres del archivo de estructura extendida los cuales sean
* mayores de 255 caracteres deberían ser tratados en una forma
* especial al escribir parte de la longitud en el campo FIELD_DEC
* de acuerdo a la siguiente fórmula:
*
* <fixed>
@@ -554,7 +554,7 @@
* $COMPLIANCE$
* CREATE FROM trabaja exactamente como en CA-Clipper.
* $PLATFORMS$
* Todas
* Todas
* $SEEALSO$
* COPY STRUCTURE,COPY STRUCTURE EXTENDED,CREATE,DBCREATE(),DBSTRUCT(),__dbCopyStruct(),__dbCopyXStruct(),__dbCreate()
* $END$
@@ -571,9 +571,9 @@
* $SYNTAX$
* __FLEDIT( <aEstructura>, [<aListaCampos>] ) --> aEstructuraFiltrada
* $ARGUMENTS$
* <aEstructura> es un array multidimensional con la estructura de los
* campos de la base de datos, la cual es usualmente la salida de
* DBSTRUCT(), donde cada elemento del array tiene la siguiente
* <aEstructura> es un array multidimensional con la estructura de los
* campos de la base de datos, la cual es usualmente la salida de
* DBSTRUCT(), donde cada elemento del array tiene la siguiente
* estructura:
*
* <table>
@@ -585,22 +585,22 @@
* 4 nDecimales DBS_DEC
* </table>
*
* <aListaCampos> es un array donde cada elemento es un nombre de
* campo. Los nombres pueden ser especificados en mayúsculas o en
* <aListaCampos> es un array donde cada elemento es un nombre de
* campo. Los nombres pueden ser especificados en mayúsculas o en
* minúsculas.
* $RETURNS$
* __FLEDIT() retorna un nuevo array multidimensional donde cada
* elemento esta en la misma estructura que el original <aEstructura>,
* pero el array es construido de acuerdo a la lista de campos en
* __FLEDIT() retorna un nuevo array multidimensional donde cada
* elemento esta en la misma estructura que el original <aEstructura>,
* pero el array es construido de acuerdo a la lista de campos en
* <aListaCampos>.
* Si <aListaCampos> esta vacío, __FLEDIT() retorna una referencia al
* array original <aEstructura>.
* $DESCRIPTION$
* __FLEDIT() puede ser usado para crear un subconjunto de la
* __FLEDIT() puede ser usado para crear un subconjunto de la
* estructura de la base de datos, basada en una lista de campos dadas.
*
* Note que los nombres de campos en <aEstructura> DEBEN ser
* especificados en mayúsculas de lo contrario podría no encontrarse
* Note que los nombres de campos en <aEstructura> DEBEN ser
* especificados en mayúsculas de lo contrario podría no encontrarse
* coincidencia.
*
* SET EXACT no tiene efecto en el valor retornado.
@@ -638,16 +638,16 @@
* $STATUS$
* R
* $COMPLIANCE$
* CA-Clipper tiene una función interna no documentada llamada
* __FLEDIT(), en Harbour nosotros la llamamos __dbStructFilter().
* El nuevo nombre da una mejor descripción de qué es lo que la función
* hace. En Harbour __FLEDIT(), simplemente llama a __dbStructFilter()
* CA-Clipper tiene una función interna no documentada llamada
* __FLEDIT(), en Harbour nosotros la llamamos __dbStructFilter().
* El nuevo nombre da una mejor descripción de qué es lo que la función
* hace. En Harbour __FLEDIT(), simplemente llama a __dbStructFilter()
* y por tanto la segunda es la función recomendada.
*
* Esta función es sólo visible si ../source/rdd/dbstrux.prg fué
* Esta función es sólo visible si ../source/rdd/dbstrux.prg fué
* compilado con la bandera HB_C52_UNDOC.
* $PLATFORMS$
* Todas
* Todas
* $FILES$
* El archivo de cabecera es dbstruct.ch
* La librería es rdd
@@ -665,12 +665,12 @@
* $ONELINER$
* Filtra un array con estructura de base de datos.
* $SYNTAX$
* __dbStructFilter( <aEstructura>, [<aListaCampos>] )
* __dbStructFilter( <aEstructura>, [<aListaCampos>] )
* --> aEstructuraFiltrada
* $ARGUMENTS$
* <aEstructura> es un array multidimensional con la estructura de
* los campos de la base de datos, la cual es usualmente la salida
* de DBSTRUCT(), donde cada elemento del array tiene la siguiente
* <aEstructura> es un array multidimensional con la estructura de
* los campos de la base de datos, la cual es usualmente la salida
* de DBSTRUCT(), donde cada elemento del array tiene la siguiente
* estructura:
*
* <table>
@@ -682,22 +682,22 @@
* 4 nDecimales DBS_DEC
* </table>
*
* <aListaCampos> es un array donde cada elemento es un nombre de
* <aListaCampos> es un array donde cada elemento es un nombre de
* campo.
* Los nombres pueden ser especificados en mayúsculas o en minúsculas.
* $RETURNS$
* __dbStructFilter() retorna un nuevo array multidimensional donde
* cada elemento esta en la misma estructura que el original
* __dbStructFilter() retorna un nuevo array multidimensional donde
* cada elemento esta en la misma estructura que el original
* <aEstructura>, pero el array es construido de acuerdo a la lista de
* campos en el array <aListaCampos>. Si <aListaCampos> esta vacío,
* __dbStructFilter() retorna una referencia al array original
* campos en el array <aListaCampos>. Si <aListaCampos> esta vacío,
* __dbStructFilter() retorna una referencia al array original
* <aEstructura>.
* $DESCRIPTION$
* __dbStructFilter() puede ser usado para crear un subconjunto de la
* __dbStructFilter() puede ser usado para crear un subconjunto de la
* estructura de la base de datos, basada en una lista de campos dadas.
*
* Note que los nombres de campos en <aEstructura> DEBEN ser
* especificados en mayúsculas de lo contrario podría no encontrarse
* Note que los nombres de campos en <aEstructura> DEBEN ser
* especificados en mayúsculas de lo contrario podría no encontrarse
* coincidencia.
*
* SET EXACT no tiene efecto en el valor retornado.
@@ -732,12 +732,12 @@
* $STATUS$
* R
* $COMPLIANCE$
* __dbStructFilter() es una extensión de Harbour. CA-Clipper tiene
* una función interna no documentada llamada __FLEDIT(), que hace lo
* mismo. El nuevo nombre da una mejor descripción de que es lo que
* la función hace.
* __dbStructFilter() es una extensión de Harbour. CA-Clipper tiene
* una función interna no documentada llamada __FLEDIT(), que hace lo
* mismo. El nuevo nombre da una mejor descripción de que es lo que
* la función hace.
* $PLATFORMS$
* Todas
* Todas
* $FILES$
* El archivo de cabecera es dbstruct.ch
* La librería es rdd
@@ -745,4 +745,3 @@
* DBCREATE(),DBSTRUCT(),__dbCopyStruct(),__FLEDIT()*
* $END$
*/

View File

@@ -7,7 +7,7 @@
* www - http://www.harbour-project.org
*
* Copyright 2002 Alejandro de Gárate <alex_degarate@hotmail.com>
* Traducción al Español de harbext.txt
* Traducción al Español de harbext.txt
*
* Vea doc/license.txt por los términos de la licencia.
*
@@ -15,11 +15,11 @@
/* $DOC$
* $FUNCNAME$
* Extensiones a Harbour
* Extensiones a Harbour
* $CATEGORY$
* Documentación
* $ONELINER$
* Extensiones a Harbour
* Extensiones a Harbour
* $DESCRIPTION$
*<b>Extensiones al lenguaje:</b> </par>
*---------------------------
@@ -29,64 +29,64 @@
* Clipper solamente permite la creación de objetos desde unas pocas
* clases estándar.
*
* En Harbour, Ud. puede crear sus propias Clases completas con
* En Harbour, Ud. puede crear sus propias Clases completas con
* Métodos, Variables de Instancia, Variables de Clase y Herencia.
* Aplicaciones enteras pueden ser designadas y codificadas en un
* Aplicaciones enteras pueden ser designadas y codificadas en un
* enfoque Orientado a Objetos.
*
*
*
*
** @<FunctionName>() </par>
*
* Retorna el puntero (la dirección) a la función.
*
* El valor retornado no es útil a nivel de la programación de la
* aplicación pero es usado a bajo nivel para implementar el código
* Orientado a Objeto (Internamente, el método de una Clase es una
* función estática, no hay un símbolo para ella, entonces esta es
* accedida mediante su dirección).
*
* El valor retornado no es útil a nivel de la programación de la
* aplicación pero es usado a bajo nivel para implementar el código
* Orientado a Objeto (Internamente, el método de una Clase es una
* función estática, no hay un símbolo para ella, entonces esta es
* accedida mediante su dirección).
*
*
** Clase TGetList
*
* Soporte Orientado a Objetos para el manejo de GetList.
*
*
*
** ProcName() soporte para el nombre de Métodos de las Clases.
*
* Los Métodos de Clases pueden ser recuperados de la pila de llamada.
*
*
*
** Memory() tiene nuevos valores de retorno.
*
* Vea hbmemory.ch
*
* Vea hbmemory.ch
*
*
** TRANSFORM() --> Agregado de nueva función para el formateo de cadenas:
*
* @0 Hace el pad con ceros una cadena numérica.
*
*
*
** STOD() --> dDate
*
* Nueva función que convierte una cadena en el formato yyyymmdd a
* valor de fecha (date).
*
* Nueva función que convierte una cadena en el formato yyyymmdd a
* valor de fecha (date).
*
*
** Declaración STRONG TYPE Opcional en tiempo de compilación (y advertencias
* en tiempo de compilación de TYPE MISMATCH)
* en tiempo de compilación de TYPE MISMATCH)
*
* Example: LOCAL/STATIC Variable AS ...
* Example: LOCAL/STATIC Variable AS ...
*
*
** El depurador de Harbour provee de nuevas clases interesantes:
*
* - La Clase TDbWindow podría ser la fundación de una ventana de
* - La Clase TDbWindow podría ser la fundación de una ventana de
* visualización multiplatforma.
*
* - La Clase TForm
*
* - La Clase TDbMenu implementa ambos menúes desplegables y
* (pulldown & popup)
* - La Clase TDbMenu implementa ambos menúes desplegables y
* (pulldown & popup)
*
*
*<b>Funcionalidad mejorada de la RTL:</b> </par>
@@ -94,21 +94,20 @@
*
*- DIRECTORY( <cMascara>, <cBandera>, <lOchoPuntoTres> )
*
* El tercer parámetro es un parámetro de Harbour (opcional) e indica que
* en aquellas plataformas que soportan nombres largos de archivo, Ud.
* El tercer parámetro es un parámetro de Harbour (opcional) e indica que
* en aquellas plataformas que soportan nombres largos de archivo, Ud.
* solicita lo que podría considerarse el equivalente al nombre 8.3
* Podría afectar ADIR() y DIR si ellas fueron modificadas para tomar
* ventaja de esto. Esta retornará nombres largos si el sistena operativo
* Podría afectar ADIR() y DIR si ellas fueron modificadas para tomar
* ventaja de esto. Esta retornará nombres largos si el sistena operativo
* lo soporta.
*
*
*- HB_DISKSPACE( <nDisco>, <nTipo> )
*
* El segundo parámetro es un parámetro de Harbour (opcional) e indica
* El segundo parámetro es un parámetro de Harbour (opcional) e indica
* el tipo de información del disco que esta siendo requerida.
* vea en ../doc/es/diskspac.txt para mayor información.
*
* $END$
*/

View File

@@ -7,12 +7,12 @@
* www - http://www.harbour-project.org
*
* Copyright 2000 Brian Hays <bhays@abacuslaw.com>
* Documentación en Inglés de:
* Documentación en Inglés de:
* Readme for Idle state, HB_IDLEADD(), HB_IDLEDEL()
* HB_IDLESTATE(), hb_idleState()
*
* Copyright 2000 Alejandro de Gárate <alex_degarate@hotmail.com>
* Documentación en Español de:
* Documentación en Español de:
* Leame para Estado Inactivo, HB_IDLEADD(), HB_IDLEDEL()
* HB_IDLESTATE(), hb_idleState()
*
@@ -32,14 +32,14 @@
* El estado de espera ó inactivo es el estado de la máquina virtual de
* Harbour cuando esta espera por una acción del usuario a través del
* teclado ó el mouse. El estado inactivo ocurre actualmente durante
* las llamadas a INKEY(). Todas las funciones que no usen la función
* INKEY() pueden señalizar el estado inactivo con una llamada a la
* función Harbour HB_IDLESTATE() ó hb_idleState() a nivel de lenguaje
* las llamadas a INKEY(). Todas las funciones que no usen la función
* INKEY() pueden señalizar el estado inactivo con una llamada a la
* función Harbour HB_IDLESTATE() ó hb_idleState() a nivel de lenguaje
* C.
*
* Durante los estado de espera, la máquina virtual llama al recolector
* Durante los estado de espera, la máquina virtual llama al recolector
* de memoria y este puede llamar a acciones definidas por el usuario
* (tareas en segundo plano ó background). Este también libera porciones
* (tareas en segundo plano ó background). Este también libera porciones
* del tiempo de la CPU para algunas plataformas deficientes que no son
* lo suficientemente inteligentes (Windows NT).
*
@@ -47,10 +47,10 @@
* HB_IDLEADD() y HB_IDLEDEL().
*
* Para llamar directamente a acciones en segundo plano vea la función:
* HB_IDLESTATE().
* HB_IDLESTATE().
*
* Para indicar el estado inactivo desde código en lenguaje C vea la
* hb_idleState() en la API,
* hb_idleState() en la API,
* $SEEALSO$
* HB_IDLEADD(),HB_IDLEDEL()
* $END$
@@ -67,11 +67,11 @@
* $SYNTAX$
* HB_IDLEADD( <cbAccion> ) --> nHandle
* $ARGUMENTS$
* <cbAccion> es un bloque de código que será ejecutado durante los
* estados de espera, No hay argumentos pasados a este bloque de código
* durante la evaluación.
* <cbAccion> es un bloque de código que será ejecutado durante los
* estados de espera, No hay argumentos pasados a este bloque de código
* durante la evaluación.
* $RETURNS$
* <nHandle> El manejador (un valor entero) que identifica la tarea.
* <nHandle> El manejador (un valor entero) que identifica la tarea.
* Este manejador puede ser usado para eliminar la tarea.
* $DESCRIPTION$
* HB_IDLEADD() agrega el pasado bloque de código a las lista de tareas
@@ -110,11 +110,11 @@
* Retorna <xAccion> igual a NIL si un manejador no válido es pasado
* $DESCRIPTION$
* La función HB_IDLEDEL() remueve la acción asociada con el identi-
* ficador pasado desde la lista de tareas en segundo plano.
* El identificador debería ser el valor retornado por la llamada
* previa a la función HB_IDLEADD().
* ficador pasado desde la lista de tareas en segundo plano.
* El identificador debería ser el valor retornado por la llamada
* previa a la función HB_IDLEADD().
* Si la tarea especificada está definida, entonces el codeblock es
* retornado, de otro modo el valor NIL es retornado.
* retornado, de otro modo el valor NIL es retornado.
* $EXAMPLES$
* nTarea := HB_IDLEADD( {|| SayTime()} )
* INKEY(10)
@@ -122,7 +122,7 @@
* $STATUS$
* R
* $COMPLIANCE$
* Extensión de Harbour
* Extensión de Harbour
* $PLATFORMS$
* Todas
* $FILES$
@@ -147,11 +147,11 @@
* $RETURNS$
* NIL
* $DESCRIPTION$
* La función HB_IDLESTATE() solicita la recolección de memoria sin
* uso y ejecuta una única tarea definida por el bloque de código
* pasado con la función HB_IDLEADD(). Cada llamada a esta función
* evalúa una tarea diferente en el orden de la creación de tareas.
* No hay argumentos pasados durante la evaluación del bloque de
* La función HB_IDLESTATE() solicita la recolección de memoria sin
* uso y ejecuta una única tarea definida por el bloque de código
* pasado con la función HB_IDLEADD(). Cada llamada a esta función
* evalúa una tarea diferente en el orden de la creación de tareas.
* No hay argumentos pasados durante la evaluación del bloque de
* código.
* Esta función puede ser llamada con seguridad, aún si no hay tareas
* definidas en segundo plano.
@@ -196,13 +196,13 @@
* Nada.
* $DESCRIPTION$
* La función hb_idleState() es una función en lenguaje C que solicita
* la recolección de memoria sin uso y ejecuta una sola tarea en
* segundo plano, definida por el bloque de código pasado con la
* función HB_IDLEADD(). Esta también libera porciones de tiempo de
* CPU para aquellas plataformas que lo requieran.
* la recolección de memoria sin uso y ejecuta una sola tarea en
* segundo plano, definida por el bloque de código pasado con la
* función HB_IDLEADD(). Esta también libera porciones de tiempo de
* CPU para aquellas plataformas que lo requieran.
*
* Cada llamda a esta función evalúa una tarea diferente en el orden
* de la creación de tareas. No hay argumentos pasados durante la
* Cada llamda a esta función evalúa una tarea diferente en el orden
* de la creación de tareas. No hay argumentos pasados durante la
* evaluación del bloque de código.
*
* Esta función puede ser llamada con seguridad, aún si no hay tareas

View File

@@ -15,8 +15,8 @@
* Vea doc/license.txt por los términos de la licencia.
*
*/
INTRODUCCION AL SEGUIMIENTO DE LA EJECUCIÓN (rastrear)
======================================================
@@ -26,20 +26,20 @@ Este archivo explica como habilitar el seguimiento en Harbour.
SEGUIMIENTO
===========
Harbour implementa el seguimiento al agregar llamadas a la siguiente
Harbour implementa el seguimiento al agregar llamadas a la siguiente
macro en código C:
HB_TRACE(level, ("parametros estilo printf", arg1, arg2));
El nivel epecificado por la llamada a HB_TRACE afecta a Harbour en
El nivel epecificado por la llamada a HB_TRACE afecta a Harbour en
dos formas: tiempo de compilación y tiempo de ejecución.
TIEMPO DE COMPILACION
=====================
En tiempo de compilación, la macro chequea cuando la constante del
preprocesador HB_TR_LEVEL es establecida a alguno de los siguientes
En tiempo de compilación, la macro chequea cuando la constante del
preprocesador HB_TR_LEVEL es establecida a alguno de los siguientes
valores:
#define HB_TR_ALWAYS 0
@@ -50,20 +50,20 @@ valores:
#define HB_TR_DEBUG 5
Si no es establecida a alguna de estas, la macro es seteada al valor
HB_TR_DEFAULT, la cual está actualmente establecida (en hbtrace.h) a
HB_TR_DEFAULT, la cual está actualmente establecida (en hbtrace.h) a
HB_TR_WARNING.
Cuando el usuario explícitamente establece HB_TR_LEVEL ó este es
establecido por el compilador, sus efectos son como sigue: cualquier
llamada en el código con un nivel mayor que HB_TR_LEVEL son borradas
del código; estas llamadas simplemente desaparecen, y no hay efecto en
Cuando el usuario explícitamente establece HB_TR_LEVEL ó este es
establecido por el compilador, sus efectos son como sigue: cualquier
llamada en el código con un nivel mayor que HB_TR_LEVEL son borradas
del código; estas llamadas simplemente desaparecen, y no hay efecto en
la perfomance del código después de eso.
TIEMPO DE EJECUCIÓN
===================
En tiempo de ejecución, el usuario puede establecer la variable de
En tiempo de ejecución, el usuario puede establecer la variable de
entorno HB_TR_LEVEL a una de:
HB_TR_ALWAYS
@@ -73,8 +73,8 @@ entorno HB_TR_LEVEL a una de:
HB_TR_INFO
HB_TR_DEBUG
con el siguiente efecto: cualquiera de las llamadas a HB_TRACE que
fueron dejadas por el compilador y que tenga un nivel inferior ó igual
con el siguiente efecto: cualquiera de las llamadas a HB_TRACE que
fueron dejadas por el compilador y que tenga un nivel inferior ó igual
a HB_TR_LEVEL imprimirá sus argumentos a la salida stderr (pantalla).
@@ -82,71 +82,71 @@ EJEMPLOS
========
HB_TR_LEVEL HB_TR_LEVEL Descripción
compilación ejecución
compilación ejecución
----------------------------------------------------------------------
HB_TR_INFO HB_TR_ERROR Todas las llamadas con niveles HB_DEBUG
son eliminadas del código, así ellas no
tienen efecto en la perfomance; solamente
llamadas con niveles de HB_TR_ERROR,
HB_TR_INFO HB_TR_ERROR Todas las llamadas con niveles HB_DEBUG
son eliminadas del código, así ellas no
tienen efecto en la perfomance; solamente
llamadas con niveles de HB_TR_ERROR,
HB_TR_FATAL y HB_TR_ALWAYS son impresas.
HB_TR_WARNING HB_TR_INFO Todas las llamadaa con niveles HB_INFO y
HB_DEBUG son eliminadas del código, así
ellas no tienen efecto en la perfomance;
solamente llamadas con niveles de
HB_TR_ERROR, HB_TR_FATAL y HB_TR_ALWAYS
son impresas. Note como estableciendo
HB_TR_INFO en tiempo de ejecución no
tiene ningún efecto, porque el código fué
HB_DEBUG son eliminadas del código, así
ellas no tienen efecto en la perfomance;
solamente llamadas con niveles de
HB_TR_ERROR, HB_TR_FATAL y HB_TR_ALWAYS
son impresas. Note como estableciendo
HB_TR_INFO en tiempo de ejecución no
tiene ningún efecto, porque el código fué
compilado con un menor nivel de rastreo.
Por ejemplo, Yo compilo Harbour en WinNT con gcc (MINGW32), así
Por ejemplo, Yo compilo Harbour en WinNT con gcc (MINGW32), así
usualmente establezco la variable de entorno C_USR a algo así:
export C_USR="-DHARBOUR_USE_WIN_GTAPI -DHB_TR_LEVEL=HB_TR_INFO"
y me aseguro que tengo todo el seguimiento para los niveles INFO,
WARNING, ERROR, FATAL y ALWAYS. Si obtengo demasiada información,
y me aseguro que tengo todo el seguimiento para los niveles INFO,
WARNING, ERROR, FATAL y ALWAYS. Si obtengo demasiada información,
en tiempo de ejecución, yo puedo cambiar la variable de entorno a:
export HB_TR_LEVEL=HB_TR_WARNING
y mantener alejado todo el seguimiento del nivel INFO. En este caso
todas las llamadas a la función de seguimiento para el nivel INFO
y mantener alejado todo el seguimiento del nivel INFO. En este caso
todas las llamadas a la función de seguimiento para el nivel INFO
serán hechas de todas formas, así que habrá un pérdida de perfomance.
USO
===
Cuando Harbour es compilado / ejecutado con algún nivel de seguimiento
y, entonces usado para compilar una aplicación regular de Harbour, la
Cuando Harbour es compilado / ejecutado con algún nivel de seguimiento
y, entonces usado para compilar una aplicación regular de Harbour, la
aplicación producirá MONTONES de información a la salida stderr.
Si Ud. está usando un sensible shell de comando (como ser bash) Ud.
Si Ud. está usando un sensible shell de comando (como ser bash) Ud.
puede redirigir la salida stderr a un archivo como en:
mi_aplic >rastro.txt
REDIRECCION
===========
La salida generada mientras se efectúa el seguimiento, va a stderr por
defecto. Ud. puede controlar esto en tiempo de ejecución al establecer
la variable de entorno HB_TR_OUTPUT al nombre del archivo donde Ud.
podría querer que la salida de seguimiento sea dirigida. Si hay algún
problema abriendo el archivo para escritura, la salida se revierte a
La salida generada mientras se efectúa el seguimiento, va a stderr por
defecto. Ud. puede controlar esto en tiempo de ejecución al establecer
la variable de entorno HB_TR_OUTPUT al nombre del archivo donde Ud.
podría querer que la salida de seguimiento sea dirigida. Si hay algún
problema abriendo el archivo para escritura, la salida se revierte a
stderr.
RASTREANDO EL PREPROCESADOR Y EL COMPILADOR
===========================================
Usualmente, Ud, no deseará habilitar el seguimiento en el preprocesador
y en el compilador; de otra menera Ud. verá la salida de seguimiento
mientras compila a Harbour mismo. Si Ud. REALMENTE quiere habilitar el
seguimiento en el pre-procesador y/o el compilador, Ud. debe definir
en adición a como se describe arriba, la siguiente variable, y entonces
Usualmente, Ud, no deseará habilitar el seguimiento en el preprocesador
y en el compilador; de otra menera Ud. verá la salida de seguimiento
mientras compila a Harbour mismo. Si Ud. REALMENTE quiere habilitar el
seguimiento en el pre-procesador y/o el compilador, Ud. debe definir
en adición a como se describe arriba, la siguiente variable, y entonces
recompilar el preprocesador / compilador:
HB_TRACE_UTILS
@@ -157,18 +157,18 @@ El valor no tiene ninguna importancia.
SEGUIMIENTO Y EJECUCION
=======================
Es también posible habilitar y deshabilitar el seguimiento en tiempo
de ejecución y averiguar y establecer el nivel de seguimiento. Desde
Es también posible habilitar y deshabilitar el seguimiento en tiempo
de ejecución y averiguar y establecer el nivel de seguimiento. Desde
código C:
* Para averiguar el estado actual de seguimiento, y opcionalmente
cambiar el estado actual a un valor dado (el cual debería estar
en el rango [0,1], de otra manera, el estado actual permanece sin
* Para averiguar el estado actual de seguimiento, y opcionalmente
cambiar el estado actual a un valor dado (el cual debería estar
en el rango [0,1], de otra manera, el estado actual permanece sin
cambios):
hb_tracestate( estado );
Por lo tanto, para sólo averiguar el estado actual, Ud. puede llamar
Por lo tanto, para sólo averiguar el estado actual, Ud. puede llamar
en forma segura:
estado_actual = hb_tracestate(-1);
@@ -184,31 +184,22 @@ c
hb_tracestate(1);
* Para averiguar el nivel actual de seguimiento, y opcionalemente
cambiar el nivel actual a un valor dado (cual debería estar en el
rango [0,5], de otra manera, el estado actual permanece sin cambios):
* Para averiguar el nivel actual de seguimiento, y opcionalemente
cambiar el nivel actual a un valor dado (cual debería estar en el
rango [0,5], de otra manera, el estado actual permanece sin cambios):
hb_tracelevel( nivel );
Por lo tanto, para sólo averiguar el nivel actual, Ud. puede llamar
Por lo tanto, para sólo averiguar el nivel actual, Ud. puede llamar
en forma segura:
nivel_actual = hb_tracelevel(-1);
Hay funciones para ser llamadas desde código Clipper:
(en realidad desde Harbour)
current_state := HB_TRACESTATE( [new_state] )
current_level := HB_TRACELEVEL( [new_level] )

View File

@@ -192,9 +192,9 @@ For GCC on Linux:
In which case you'll also need to export HB_SCREEN_LIB with
the name of the appropriate screen library, if it doesn't
match the default value in config/linux/gcc.cf.
2) If you want to take advantage of compiler cache programs
(such as http://ccaache.samba.org), you may set environment
variable HB_CCACHE with the value containing the name of program.
2) If you want to take advantage of compiler cache programs
(such as http://ccaache.samba.org), you may set environment
variable HB_CCACHE with the value containing the name of program.
For GCC on OS/2 for VIO mode:
Note: You must point C_INCLUDE_PATH to the EMX include directory and
@@ -240,8 +240,8 @@ For Watcom C/C++ 10.x (default Makefile creates DOS4G extender executables)
Note: It is possible that you will have to increase the space reserved for
DOS environment variables in order to successfuly run make utility
(Add for example:
SHELL=C:\COMMAND.COM C:\ E=2048 /P
to your CONFIG.SYS )
SHELL=C:\COMMAND.COM C:\ E=2048 /P
to your CONFIG.SYS )
If you issue a "make install", it will try to install your header,
executable and library files into directories given by
@@ -293,4 +293,3 @@ pass parameters to the program. For example, 'build readfile harbour.ini'
will rebuild the readfile.prg program and run it with 'harbour.ini' as a
command line parameter.

View File

@@ -65,11 +65,11 @@ Uses SET CENTURY
The following functions mean something :
@E Use British date format
/* QUESTION :
Clipper appears to reverse the MM and DD parts of the
date, regardless of SET DATE FORMAT, because if the
date format is British, using @E displays the date in
American. Harbour always treats @E as British.
So is Harbour's behaviour a bug fix or a bug?
*/
/* QUESTION :
Clipper appears to reverse the MM and DD parts of the
date, regardless of SET DATE FORMAT, because if the
date format is British, using @E displays the date in
American. Harbour always treats @E as British.
So is Harbour's behaviour a bug fix or a bug?
*/