L2BIN()
Convierte un valor numérico de CA-Clipper en un valor entero binario de 32 bits ────────────────────────────────────── Sintaxis L2BIN() --> cEnteroBinario Argumentos es el valor numérico que se va a convertir. Los números decimales se truncan. Devuelve L2BIN() devuelve una cadena de caracteres de 4 bytes formateada como un entero binario de 32 bits. Descripción L2BIN() es una función de bajo nivel que se utiliza con FWRITE() para escribir valores numéricos de CA-Clipper en un fichero binario. Esta función es similar a I2BIN(), que formatea un valor numérico de CA-Clipper en un valor binario de 16 bits. L2BIN() es la función inversa de BIN2L(). Ejemplos n Este ejemplo crea un nuevo fichero binario y escribe una serie de números en los ficheros utilizando L2BIN() para convertir el valor numérico en un número binario de 32 bits: #include "Fileio.ch" // LOCAL nNumero, nManejador nManejador := FCREATE("Fichero", FC_NORMAL) FOR nNumero := 1 TO 100 FWRITE(nManejador, L2BIN(nNumero) + CHR(0)) NEXT FCLOSE(nManejador) Ficheros: La biblioteca asociada es EXTEND.LIB, el módulo fuente es SOURCE\SAMPLE\EXAMPLEA.ASM.
LASTKEY()
Devuelve el valor INKEY() de la última tecla extraída de la memoria intermedia del teclado ─────────────────────────────────────────── Sintaxis LASTKEY() --> nCódigoInkey Devuelve LASTKEY() devuelve un número entre -39 y 386, que identifica el valor INKEY() de la última tecla extraída de la memoria intermedia del teclado. Descripción LASTKEY() es una función de teclado que informa del valor INKEY() de la última tecla recogida de la memoria intermedia del teclado por la función INKEY() o por un estado de espera como ACCEPT, INPUT, READ, WAIT, ACHOICE(), DBEDIT() o MEMOEDIT(). LASTKEY() conserva su valor actual hasta que se recoge otra tecla de la memoria intermedia del teclado. LASTKEY() permite: n Determinar la tecla que termina un READ. n Determinar la tecla que provoca la salida del objeto GET actual en una función definida por el usuario, invocada por una cláusula VALID. n Identificar una tecla de excepción en la función de usuario de ACHOICE(), DBEDIT() o MEMOEDIT(). LASTKEY() se utiliza también con la función UPDATED() para determinar si se ha modificado la memoria intermedia de algún objeto Get durante un READ. LASTKEY() se relaciona con NEXTKEY() y READKEY(). NEXTKEY() lee la tecla actual pendiente en la memoria intermedia del teclado sin eliminarla de la misma. Utilice NEXTKEY() en vez de INKEY() cuando desee consultar una tecla. Si desea una lista completa de los códigos de INKEY() y constantes de INKEY.CH para cada tecla, consulte la guía Mensajes de Error y Apéndices. Ejemplos n Este ejemplo muestra una aplicación típica de LASTKEY() para comprobar la tecla con la que se sale de un READ. Si el usuario sale con una tecla distinta de Esc y se ha modificado el objeto Get, se actualiza el fichero especificado de base de datos. #include "Inkey.ch" // USE Cliente NEW MEMVAR->balance = Cliente->Balance @ 10, 10 SAY "Balance Actual" GET MEMVAR->balance READ // IF (LASTKEY() != K_ESC).AND. UPDATED() REPLACE Cliente->Balance WITH MEMVAR->balance ENDIF Ficheros: La biblioteca asociada es CLIPPER.LIB, el fichero de cabecera asociado es Inkey.ch.
LASTREC()
Determina el número de registros del fichero actual (.dbf) ──────────────────────────────────── Sintaxis LASTREC() | RECCOUNT()* --> nRegistros Devuelve LASTREC() devuelve el número de registros físicos en el fichero actual de base de datos, en forma de valor numérico entero. Los mandatos de filtrado como SET FILTER o SET DELETED no tienen efecto sobre el valor devuelto. LASTREC() devuelve cero si no hay ningún fichero de base de datos utilizado en el área de trabajo actual. Descripción LASTREC() es una función de base de datos que determina el número de registros físicos existentes en el fichero actual de base de datos. LASTREC() es idéntica a RECCOUNT(), que se incluye por razones de compatibilidad. Por defecto, LASTREC() actúa en el área de trabajo actualmente seleccionada. Para que opere sobre un área de trabajo no seleccionada, debe especificarse como parte de una expresión de alias (consulte el ejemplo siguiente). Ejemplos n Este ejemplo muestra la relación entre LASTREC(), RECCOUNT() y COUNT: USE Ventas NEW ? LASTREC(), RECCOUNT() // Resultado: 84 84 // SET FILTER TO Vendedor = "1001" COUNT TO nRegistros ? nRegistros, LASTREC() // Resultado: 14 84 n Este ejemplo utiliza una expresión de alias para acceder al número de registros de un fichero de base de datos abierto en un área de trabajo no seleccionada. USE Ventas NEW USE Cliente NEW ? LASTREC(), Ventas->(LASTREC()) Ficheros: La biblioteca asociada es CLIPPER.LIB.
LEFT()
Extrae una subcadena comenzando en el primer carácter de una cadena ──────────────────────────────── Sintaxis LEFT(, ) --> cSubCadena Argumentos es la cadena de la que se extraen los caracteres. El tamaño máximo de es de 65.553 (64K) bytes. es el número de caracteres que se van a extraer. Devuelve LEFT() devuelve los caracteres más a la izquierda de , como una cadena de caracteres. Si es cero o negativo, LEFT() devuelve una cadena nula (""). Si es mayor que la longitud de la cadena de caracteres, LEFT() devuelve toda la cadena. Descripción LEFT() es una función de caracteres que devuelve una subcadena de la cadena de caracteres especificada. Es idéntica a SUBSTR(,1,). LEFT() es similar a RIGHT(), que devuelve una subcadena comenzando por el último carácter de la misma. LEFT(), RIGHT() y SUBSTR() se utilizan con frecuencia con las funciones AT() y RAT() para localizar la primera y/o última posición de una subcadena antes de extraerla. Ejemplos n Este mandato extrae los tres primeros caracteres empezando por la izquierda de la cadena: ? LEFT("ABCDEF", 3) // Resultado: ABC n Este ejemplo extrae una subcadena comenzando por el principio de otra cadena, hasta la primera coma: LOCAL cNombre := "Jorge, Luis" ? LEFT(cNombre, AT(",", cNombre) - 1) // Resultado: // Jorge Ficheros: La biblioteca asociada es CLIPPER.LIB.
LEN()
Devuelve la longitud de una cadena de caracteres o el número de elementos de una matriz ───────────────────────────────── Sintaxis LEN( | ) --> nPosiciones Argumentos es la cadena de caracteres que se va a contar. es la matriz que se va a contar. Devuelve LEN() devuelve la longitud de una cadena de caracteres o el número de elementos en una matriz, como un número entero. Si la cadena de caracteres es una cadena nula ("") o la matriz está vacía, LEN() devuelve cero. Descripción LEN() es una función de caracteres y matrices que devuelve la longitud de una cadena de caracteres o el número de elementos en una matriz. Con una cadena de caracteres, cada byte se cuenta como uno, incluyendo un byte nulo (CHR (0)). Por contra, una cadena nula ("") se cuenta como cero. Para una matriz, LEN() devuelve el número de elementos. Si la matriz es multidimensional, las submatrices se cuentan como un elemento. Esto quiere decir que el valor devuelto por LEN() para una matriz anidada o multidimensional es simplemente la longitud de la primera dimensión. Para determinar el número de elementos en otras dimensiones, utilice LEN() en las submatrices como se muestra en el ejemplo siguiente. Recuerde que las matrices anidadas en CA-Clipper no necesitan tener dimensiones uniformes. Ejemplos n Estos ejemplos muestran la utilización de LEN() con varios argumentos: ? LEN("cadena de caracteres") // Resultado: 20 ? LEN("") // Resultado: 0 ? LEN(CHR(0)) // Resultado: 1 // LOCAL aPrueba[10] ? LEN(aPrueba) // Resultado: 10 n Este ejemplo crea una matriz bidimensional de forma literal y devuelve el número de elementos en la submatriz contenida en el primer elemento de la matriz original: LOCAL aMatriz := { {1, 2}, {1, 2}, {1, 2} } ? LEN(aMatriz) // Resultado: 3 ? LEN(aMatriz[1]) // Resultado: 2 n Este ejemplo se desplaza por una matriz multidimensional utilizando LEN(): LOCAL aMatriz := { {1, 2}, {1, 2}, {1, 2} } LOCAL nFilas, nCols, nPosFilas, nPosCols // nPosFilas = LEN(aMatriz) FOR nFilas = 1 TO nPosFilas nPosCols = LEN(aMatriz[nFilas]) FOR nCols = 1 TO nPosCols ? nFilas, nCols, aMatriz[nFilas][nCols] NEXT NEXT n En este ejemplo, una función devuelve una matriz de valores numéricos que describe las dimensiones de una matriz multidimensional anidada. La función supone que la matriz tiene dimensiones uniformes: FUNCTION Dimensiones( aMatriz ) LOCAL aDims := {} DO WHILE ( VALTYPE(aMatriz) == "A" ) AADD( aDims, LEN(aMatriz) ) aMatriz := aMatriz[1] ENDDO RETURN (aDims) Ficheros: La biblioteca asociada es CLIPPER.LIB.
LOG()
Calcula el logaritmo natural de un valor numérico ──────────────────────────────── Sintaxis LOG() --> nLogNatural Argumentos es el valor numérico mayor que cero que desea convertir en su logaritmo natural. Devuelve LOG() devuelve el logaritmo natural como un valor numérico. Si es menor o igual a cero, LOG() devuelve un error de desbordamiento numérico (mostrado como una fila de asteriscos). Descripción LOG() es una función numérica que calcula el logaritmo natural de un número. Es la inversa de EXP(). Los logaritmos naturales tienen como base el número e, que es igual a 2.7183 aproximadamente. La función LOG() devuelve x en la siguiente ecuación: e**x = y donde y es la expresión numérica utilizada como argumento de LOG() (es decir, LOG(y) = x). Debido al redondeo matemático, los valores devueltos por LOG() y EXP() pueden no corresponderse exactamente (es decir, EXP(LOG(x)) puede no ser siempre igual a x). Ejemplos n Estos ejemplos muestran los resultados de diversos usos de LOG(): ? LOG(10) // Resultado: 2.30 ? LOG(10 * 2) // Resultado: 3.00 ? EXP(LOG(1)) // Resultado: 1.00 ? LOG(2.71) // Resultado: 1.00 n Este ejemplo es una función definida por el usuario que devuelve el logaritmo en base 10: FUNCTION Log10( nNumero ) IF nNumero > 0 RETURN LOG(nNumero)/LOG(10) ELSE RETURN NIL ENDIF Ficheros: La biblioteca asociada es CLIPPER.LIB.
LOWER()
Convierte en minúsculas los caracteres en mayúsculas ─────────────────────────────────────── Sintaxis LOWER() --> cCadenaMinúsc Argumentos es la cadena de caracteres que desea convertir en minúsculas. Devuelve LOWER() devuelve una copia de con todos los caracteres alfabéticos en letras minúsculas. Los restantes caracteres permanecen inalterados en la cadena original. Descripción LOWER() es una función de caracteres que convierte cadenas en mayúsculas y mixtas en cadenas en minúsculas. Está relacionada con UPPER() que convierte cadenas en minúsculas y mixtas en cadenas en mayúsculas. LOWER() está relacionada con las funciones ISLOWER() e ISUPPER() que determinan si una cadena comienza con un carácter en minúscula o mayúscula. LOWER() se utiliza normalmente para formatear una cadena de caracteres para su visualización en pantalla. Puede utilizarse también para normalizar cadenas en comparaciones que no diferencian mayúsculas y minúsculas o para la indexación con INDEX. Ejemplos n Estos ejemplos muestran los resultados de diferentes usos de LOWER(): ? LOWER("CADENA") // Resultado: cadena ? LOWER("1234 CARACTERES = ") // Resultado: 1234 caracteres = Ficheros: La biblioteca asociada es CLIPPER.LIB.
LTRIM()
Elimina los espacios en blanco iniciales de una cadena de caracteres ─────────────────────────────────── Sintaxis LTRIM() --> cCadenaRecortada Argumentos es la cadena de caracteres de la que desea eliminar los espacios iniciales en blanco. Devuelve LTRIM() devuelve una copia de sin los espacios iniciales en blanco. Si es una cadena nula ("") o está formada por espacios, LTRIM() devuelve una cadena nula (""). Descripción LTRIM() es una función de caracteres que formatea cadenas de caracteres con espacios iniciales en blanco. Estas pueden ser, por ejemplo, números que se convierten en una cadena de caracteres utilizando STR(). LTRIM() está relacionada con RTRIM(), que elimina los espacios en blanco finales, y con ALLTRIM(), que elimina los espacios en blanco tanto iniciales como finales. Las funciones inversas de ALLTRIM(), LTRIM() y RTRIM() son PADC(), PADR() y PADL() que centran, justifican a la derecha o a la izquierda, respectivamente, la cadena de caracteres añadiendo caracteres de relleno. Ejemplos n Estos ejemplos muestran los resultados de diferentes usos de la función LTRIM(): nNumero = 18 ? STR(nNumero) // Resultado: 18 ? LEN(STR(nNumero)) // Resultado: 10 ? LTRIM(STR(nNumero)) // Resultado: 18 ? LEN(LTRIM(STR(nNumero))) // Resultado: 2 Ficheros: La biblioteca asociada es CLIPPER.LIB.
LUPDATE()
Devuelve la fecha de la última modificación de un fichero (.dbf) ───────────────────────────────────────── Sintaxis LUPDATE() --> fModificación Devuelve LUPDATE() devuelve la fecha del último cambio realizado en el fichero de base de datos abierto en al área de trabajo actual. Si no se está utilizando ningún fichero de base de datos, LUPDATE() devuelve una fecha en blanco. Descripción LUPDATE() es una función de base de datos que determina la fecha en la que modificó y cerró mediante CLOSE por última vez el fichero de base de datos del área de trabajo actual. Por defecto, LUPDATE() actúa en el área de trabajo actualmente seleccionada. Para que opere en un área de trabajo no seleccionada, debe especificarse en una expresión de alias, como se muestra en un ejemplo posterior. Ejemplos n Este ejemplo muestra que la fecha de modificación de un fichero de base de datos no cambia hasta que se cierra el fichero: ? DATE() // Resultado: 09/01/90 USE Ventas NEW ? LUPDATE() // Resultado: 08/31/90 // APPEND BLANK ? LUPDATE() // Resultado: 08/31/90 CLOSE DATABASES // USE Ventas NEW ? LUPDATE() // Resultado: 09/01/90 n Este ejemplo utiliza una expresión de alias para acceder a un fichero de base de datos abierto en un área de trabajo no seleccionada: USE Ventas NEW USE Cliente NEW ? LUPDATE(), Ventas->(LUPDATE()) Ficheros: La biblioteca asociada es EXTEND.LIB.