
TIME()
Devuelve la hora del sistema
------------------------------------------------------------------------------
Sintaxis
TIME() --> cCadenaHora
Devuelve
TIME() devuelve la hora del sistema como una cadena de carácteres en el
formato hh:mm:ss. hh es la hora en formato de 24 horas, mm son los
minutos y ss son los segundos
Descripción
TIME() es una función horaria que muestra la hora del sistema en la
pantalla o la imprime en un informe. TIME() está relacionada con
SECONDS(), que devuelve un valor entero que representa el número de
segundos desde la media noche. Para cálculos horarios, suele utilizarse
SECONDS() en vez de TIME()
Ejemplos
. Estos ejemplos muestran el resultado de utilizar TIME() con
SUBSTR() para extraer los dígitos de hora, minutos y segundos:
? TIME() // Resultado: 10:37:17
? SUBSTR(TIME(), 1, 2) // Resultado: 10
? SUBSTR(TIME(), 4, 2) // Resultado: 37
? SUBSTR(TIME(), 7, 2) // Resultado: 17
Ficheros: La biblioteca asociada es CLIPPER.LIB.
TONE()
Hace sonar un tono en el altavoz, con la frecuencia y duraci.n especificadas
------------------------------------------------------------------------------
Sintaxis
TONE(<nFrecuencia>, <nDuraci.n>) --> NIL
Argumentos
<nFrecuencia> es un valor numérico que indica la frecuencia del tono
que va a sonar.
<nDuraci.n> es un número positivo que indica la duraci.n del tono
medida en incrementos de 1/18 de segundo. Por ejemplo, una <nDuraci.n>
de 18 representa un segundo.
En ambos argumentos, los valores decimales se truncan, sin redondear,
para dar la parte entera.
Devuelve
TONE() siempre devuelve NIL.
Descripción
TONE() es una función de sonido que sirve para indicar al usuario los
diferentes estados de un programa. Pueden ser estados de error,
condiciónes l.mite o el final de un proceso muy lento. Por ejemplo, un
estado de error podr.a generaráun cierto tono antes de alertar al
usuario con un mensaje o un panel de diálogo interactivo. Una condición
l.mite podr.a indicar que el usuario est. intentando desplazar el cursor
m.s all. de la posición superior o inferior de una columna de un objeto
TBrowse.
Un proceso por lotes podr.a indicar el momento de terminaci.n con un
sonido, para alertar al usuario en caso de que .ste se haya alejado de
la pantalla.
TONE() trabaja generando tonos con una frecuencia y duraci.n
especificadas. La duraci.n se mide en incrementos de 1/18 de segundo. La
frecuencia se mide en hertzios (ciclos por segundo). Las frecuencias por
debajo de 20 Hz son inaudibles. La tabla siguiente muestra las
frecuencias de las notas musicales estándar.
Nota: TONE() sólo opera en ordenadores personales totalmente
compatibles .
Tabla de Notas Musicales
------------------------------------------------------------------------
Nota Frecuencia Nota Frecuencia
------------------------------------------------------------------------
C 130,80 C medio 261,70
C# 138,60 C# 277,20
D 146,80 D 293,70
D# 155,60 D# 311,10
E 164,80 E 329,60
F 174,60 F 349,20
F# 185,00 F# 370,00
G 196,00 G 392,00
G# 207,70 G# 415,30
A 220,00 A 440,00
A# 233,10 A# 466,20
B 246,90 B 493,90
C 523,30
------------------------------------------------------------------------
Ejemplos
. Este ejemplo es una función que indica con un tono cuando ha
terminado un proceso por lotes:
FUNCTION BipTerminacion
TONE(300, 1)
TONE(100, 1)
TONE(300, 1)
TONE(100, 1)
RETURN NIL
. Este ejemplo es una secuencia de tonos que indican que se han
pulsado teclas no víaacute;lidas o que se han alcanzado condiciónes l.mite:
FUNCTION BipError
TONE(100, 3)
RETURN NIL
Ficheros: La biblioteca asociada es EXTEND.LIB,
el módulo fuente es SOURCE\SAMPLE\EXAMPLEA.ASM.
TRANSFORM()
Convierte cualquier valor en una cadena de carácteres formateada
------------------------------------------------------------------------------
Sintaxis
TRANSFORM(<exp>, <cPatrónFormatoSay>) --> cCadenaFormato
Argumentos
<exp> es el valor que se va a formatear. Puede ser una expresión de
cualquier tipo de datos víaacute;lido en CA-Clipper excepto matrices, bloques
de código y NIL.
<cPatrónFormatoSay> es una cadena de carácteres que describe el
formato del valor devuelto.
Devuelve
TRANSFORM() convierte <exp> en una cadena de carácteres formateada seg.n
lo definido en<cPatrónFormatoSay>.
Descripción
TRANSFORM() es una función de conversión que formatea valores de
carácteres, fechas, lógicos y numéricos de acuerdo a una cadena de
formato especificada compuesta por una combinación de funciónes de
formato y cadenas de plantilla.
TRANSFORM() formatea los datos para su salida por pantalla o por
impresora de la misma manera que la cláusula PICTURE del mandato
@...SAY.
. Cadena de función: Cadena que especifica las reglas de
formato aplicadas al valor devuelto por TRANSFORM() en su conjunto,
en vez de a las posiciónes de carácter individuales en <exp>. Est.
formada por el carácter @ seguido de uno o m.s carácteres
adicionales, cada uno de los cuales tiene un significado determinado
(consulte la tabla siguiente). Si se indica una cadena de función, el
carácter @ debe ser el primero a la izquierda de la cadena de
formato, y la cadena de función no debe contener espacios.
Puede especificarse una cadena de función sola o acompañada de una
cadena de plantilla. Si se utilizan ambas, la cadena de función debe
preceder a la cadena de plantilla y las dos deben estar separadas por
un espacio.
funciónes TRANSFORM()
---------------------------------------------------------------------
función Acción
---------------------------------------------------------------------
B Muestra números justificados a la izquierda
C Muestra RC después de los números positivos
D Muestra las fechas en el formato especificado por SET DATE
E Muestra la fecha en formato británico
R Inserta carácteres que no aparecen en la plantilla
X Muestra DB después de los números negativos
Z Muestra los ceros como espacios en blanco
( Sitúa los números negativos entre paréntesis
! Convierte en mayúsculasólos carácteres alfabéticos
---------------------------------------------------------------------
. Cadena de plantilla: La cadena de plantilla especifica las
reglas de formato carácter a carácter. La cadena de plantilla est.
formada por una serie de carácteres, algunos de los cuales tienen
significados especiales (consulte la tabla siguiente). Cada posición
de la cadena de plantilla corresponde a una posición en el valor del
argumento <exp>. Esta plantilla se utiliza con TRANSFORM(), por lo
que puede servir para insertar carácteres tales como comas, signos de
d.lar y paréntesis.
Los carácteres de la cadena de plantilla que no tengan significados
asignados se copian literalmente en el valor devuelto. Si se utiliza
la función de imagen @R, estos carácteres se insertan entre los
carácteres del valor devuelto; en caso contrario sustituyen a los
carácteres correspondientes de dicho valor. Puede especificarse una
cadena de plantilla sola o acompañada de una cadena de función. Si se
utilizan ambas, la cadena de función debe ir antes que la cadena de
plantilla y ambas cadenas deben estar separadas por un espacio.
Plantillas TRANSFORM()
---------------------------------------------------------------------
Plantilla Acción
---------------------------------------------------------------------
A,N,X,9,# Muestra dígitos de cualquier tipo de datos
L Muestra los valores lógicos como "T" o "F"
Y Muestra los valores lógicos como "S" o "N"
! Convierte en mayúscula un carácter alfabético
$ Muestra un signo de d.lar en cada espacio inicial en
blanco de un valor numérico
* Muestra un asterisco en cada espacio inicial en blanco
de un valor numérico
. Especifica una posición de punto decimal
, Especifica una posición de coma
---------------------------------------------------------------------
Ejemplos
. Este ejemplo asigna un formato monetario a un número
utilizando una plantilla:
? TRANSFORM(123456, "$999,999") // Resultado: $123,456
. Este ejemplo formatea una cadena de carácteres útilizando una
función:
? TRANSFORM("en mayúsculas", "@!") // Resultado: EN MAYUSCULAS
Ficheros: La biblioteca asociada es CLIPPER.LIB.
TYPE()
Determina el tipo de una expresión
------------------------------------------------------------------------------
Sintaxis
TYPE(<cExp>) --> cTipo
Argumentos
<cExp> es la expresión de carácteres cuyo tipo se va a determinar.
<cExp> puede ser un campo, con o sin alias, una variable pública o
privada o una expresión de cualquier tipo.
Devuelve
TYPE() devuelve uno de los siguientes carácteres:
Valores Devueltos por TYPE()
------------------------------------------------------------------------
Devuelve Significado
------------------------------------------------------------------------
A Matriz
B Bloque de C.digo
C Car.cter
D Fecha
L L.gico
M Memo
N numérico
O Objeto
U NIL, local o estática
UE Error de sintaxis
UI Error indeterminado
------------------------------------------------------------------------
Descripción
TYPE() es una función del sistema que devuelve el tipo de la expresión
especificada. Puede comprobar la validez de la expresión mientras esta
utilice funciónes CLIPPER.LIB y no haga referencia a variablesólocales o
estáticas, funciónes definidas por el usuario o funciónes predefinidas
contenidas en EXTEND.LIB.
TYPE() es similar a VALTYPE() , pero utiliza el operador de macro (&)
para determinar el tipo del argumento. Esto impide utilizar TYPE() para
determinar el tipo de variablesólocales o estáticas. VALTYPE(), por
contra, permite evaluar una expresión y determina el tipo de datos del
valor devuelto. Permite determinar el tipo de funciónes definidas por el
usuario y de variablesólocales y estáticas.
Notas
. Referencias a matrices: Las referencias a matrices
públicas y privadas devuelven "A". Las referencias a elementos de
matrices devuelven el tipo del elemento.
. IF(): Para devolver el tipo de datos de una expresión
IF(), TYPE() eval.a la condición y luego devuelve el tipo de la vía
especificada. Si la expresión IF() o la vía evaluada no son víaacute;lidos,
TYPE() devuelve "UE".
. Comprobaci.n de parámetros: TYPE() sólo puede comprobar la
validez de los parámetros recibidos con la sentencia PARAMETERS Al
verificar un parámetro declarado como parte de una declaración
FUNCTION o PROCEDURE, devuelve siempre "U.", porque los parámetros
locales no tienen un s.mbolo en la tabla de s.mbolos. Para determinar
si se ha saltado un argumento o dejado al final de la lista de
argumentos, compare el parámetro con NIL o utilice la función
VALTYPE().
. funciónes definidas por el usuario y contenidas en
EXTEND.LIB Si en una expresión se hace una referencia a una función
que no se encuentra en CLIPPER.LIB (una función definida por el
usuario o EXTEND.LIB ), TYPE() devuelve "UI." Si la función definida
por el usuario no ha sido enlazada al programa actual, TYPE()
devuelve "U.".
Ejemplos
. Estos ejemplos muestran diversos resultados de la utilización
de TYPE():
? TYPE('SUBSTR("Hola, .qu. tal?", 4, 5)') // Resultado: C
? TYPE("UDF()") // Resultado: UI
? TYPE('IF(.T., "verdadero", 12)') // Resultado: C
. Este ejemplo muestra dos m.todos de comprobar la existencia y
tipo de los parámetros declarados:
FUNCTION ParamPrueba
PARAMETERS cParam1, nParam2
IF cParam1 = NIL
? "No se ha pasado el primer parámetro"
cParam1 := "Valor por defecto"
ENDIF
//
IF TYPE(nParam2) == "U"
? "No se ha pasado el segundo parámetro"
ENDIF
.
. <sentencias>
.
RETURN NIL
Ficheros: La biblioteca asociada es CLIPPER.LIB.
UPDATED()
Determina si ha cambiado un objeto GET durante un mandato READ
------------------------------------------------------------------------------
Sintaxis
UPDATED() --> lCambio
Devuelve
UPDATED() devuelve verdadero (.T.) si se han a.adido o modificado datos
en un GET; en caso contrario devuelve falso (.F.).
Descripción
UPDATED() determina si se han introducido satisfactoriamente los
carácteres en el objeto GET desde el teclado utilizando el READ m.s
reciente. Cada vez que se ejecuta un READ, UPDATED() toma el valor falso
(.F.). Cada vez que se accede a un objeto GET desde el teclado,
UPDATED() toma el valor verdadero (.T.) después de que el usuario sale
del objeto GET. Si el usuario pulsa Esc antes de salir del primer objeto
GET editado, UPDATED() sigue siendo falso (.F.). Cuando UPDATED() toma
el valor verdadero (.T.), mantiene este valor, hasta que se ejecuta el
siguiente READ.
En un procedimiento SET KEY o VALID puede cambiar la variable del GET
actual utilizando el mandato KEYBOARD o asign.ndole un nuevo valor con
cualquiera de los operadores de asignación. Cambiar el valor de la
variable con KEYBOARD tiene el mismo efecto que si el usuario hubiera
introducido el cambio directamente desde el teclado, y UPDATED()
devuelve el valor correspondiente. No obstante, como UPDATED() refleja
sólo los cambios realizados desde el teclado, una asignación de la
variable del GET no afecta a UPDATED().
Ejemplos
. Este ejemplo asigna valores de campos de Clientes.dbf a
variables y las edita. Si el usuario cambia cualquiera de estos
valores, las variables de campo para el registro actual se actualizan
con los nuevos valores:
USE Cliente NEW
CLEAR
MEMVAR->Cliente = Cliente->Cliente
MEMVAR->Direccion = Cliente->Direccion
@ 1, 1 SAY "Nombre:" GET MEMVAR->Cliente
@ 2, 1 SAY "Direccion:" GET MEMVAR->Direccion
READ
//
IF UPDATED()
Cliente->Cliente := MEMVAR->Cliente
Cliente->Direccion := MEMVAR->Direccion
ENDIF
Ficheros: La biblioteca asociada es CLIPPER.LIB.
UPPER()
Convierte todas las minúsculas en mayúsculas
------------------------------------------------------------------------------
Sintaxis
UPPER(<cCadena>) --> cCadenaMay.s
Argumentos
<cCadena> es la cadena de carácteres que se va a convertir.
Devuelve
UPPER() devuelve una copia de <cCadena> con todos los carácteres
alfabéticos transformados en mayúsculas. Los restántes carácteres
permanecen inalterados como en la cadena original.
Descripción
UPPER() es una función de carácteres que convierte cadenas en minúsculas
y mixtas en cadenas en mayúsculas. Está relacionada con LOWER() que
convierte cadenas en mayúsculas y mixtas en cadenas en minúsculas.
UPPER() está relacionada también con las funciónes ISUPPER() y ISLOWER()
que determinan si una cadena comienza con una letra minúscula o
mayúscula.
UPPER() se utiliza normalmente para formatear cadenas de carácteres con
fines de visualización. También puede utilizarse para homogeneizar
cadenas en comparaciones que no diferencian mayúsculas y minúsculas o
para ordenación con INDEX.
Ejemplos
. Este ejemplo muestra el resultado de UPPER():
? UPPER("una cadena") // Resultado: UNA CADENA
? UPPER("123 carac = <>") // Resultado: 123 CARAC = <>
. Este ejemplo utiliza UPPER() como parte de una condición
independiente de mayúsculas y minúsculas:
USE Cliente INDEX NombreCliente NEW
LIST NombreCliente FOR "KATE" $ UPPER(Cliente)
. UPPER() es útil también para crear expresiónes clave de
ííndices, independientes de mayúsculas y minúsculas:
USE Cliente NEW
INDEX ON UPPER(último) TO últimoCliente
. A continúa.ión, puede utilizar esta expresión para buscar
Clientes:
MEMVAR->último = SPACE(15)
@ 10, 10 GET MEMVAR->último
READ
SEEK UPPER(MEMVAR->último)
Ficheros: La biblioteca asociada es CLIPPER.LIB.
USED()
Determina si se est. utilizando un fichero de base de datos
------------------------------------------------------------------------------
Sintaxis
USED() --> lFichAbierto
Devuelve
USED() devuelve verdadero (.T.) si existe alg.n fichero de base de datos
abierto; en caso contrario devuelve falso (.F.)
Descripción
USED() es una función de base de datos que determina si existe alg.n
fichero de base de datos abierto o en un área de trabajo determinada.
Por defecto, USED() act.a en el área de trabajo seleccionada
actualmente. Si desea que act.e en un área de trabajo no seleccionada,
debe especificarse como parte de una expresión de alias.
Ejemplos
. Este ejemplo determina si se est. utilizando un fichero de
base de datos en el área de trabajo actual:
USE Cliente NEW
? USED() // Resultado: .T.
CLOSE
? USED() // Resultado: .F.
Ficheros: La biblioteca asociada es CLIPPER.LIB.
VAL()
Convierte un valor de carácteres en un valor numérico
------------------------------------------------------------------------------
Sintaxis
VAL(<cnúmero>) --> nNúmero
Argumentos
<cnúmero> es la expresión de carácteres que se va a convertir.
Devuelve
VAL() devuelve <cnúmero> convertido en un valor numérico, incluyendo
dígitos decimales.
Descripción
VAL() es una función de conversión que convierte una cadena de
carácteres que contiene dígitos numéricos en un valor numérico. Al
ejecutar VAL(), eval.a <cnúmero> hasta una segunda coma decimal, el
primer carácter no numérico o el final de la expresión. Los espacios en
blanco iniciales se ignoran. Si se ha establecido SET FIXED ON, VAL()
devuelve el número de lugares decimales especificado por SET DECIMALS,
redondeando <cnúmero> si se especifica con m.s dígitos que el valor
DECIMALS actual. Igual que las otras funciónes de redondeo, los dígitos
comprendidos entre cero y cuatro se redondean hacia abajo y los dígitos
entre cinco y nueve se redondean hacia arriba. Si se ha establecido SET
FIXED OFF, VAL() devuelve el número de lugares decimales especificado
entre <cnúmero>.
VAL() es la opuesta de STR() y TRANSFORM() que convierten valores
numéricos en cadenas de carácteres.
Ejemplos
. Estos ejemplos muestran la utilización de VAL() con SET FIXED
ON y SET DECIMALS TO 2:
SET DECIMALS TO 2
SET FIXED ON
//
? VAL("12,1234") // Resultado: 12,12
? VAL("12,1256") // Resultado: 12,13
? VAL("12A12") // Resultado: 12
? VAL("A1212") // Resultado: 0
? VAL(SPACE(0)) // Resultado: 0
? VAL(SPACE(1)) // Resultado: 0
? VAL(" 12,12") // Resultado: 12,12
? VAL("12 ,12") // Resultado: 12,00
Ficheros: La biblioteca asociada es CLIPPER.LIB.
VALTYPE()
Determina el tipo de datos devuelto por una expresión
------------------------------------------------------------------------------
Sintaxis
VALTYPE(<exp>) --> cTipo
Argumentos
<exp> es una expresión de cualquier tipo.
Devuelve
VALTYPE() devuelve un carácter sencillo que representa el tipo de datos
devuelto por <Exp>. VALTYPE() devuelve uno de los siguientes carácteres:
Valores Devueltos por VALTYPE()
------------------------------------------------------------------------
Devuelve Significado
------------------------------------------------------------------------
A Matriz
B Bloque de código
C Car.cter
D Fecha
L L.gico
M Memo
N numérico
O Objeto
U NIL
------------------------------------------------------------------------
Descripción
VALTYPE() es una función del sistema que toma un argumento, lo eval.a y
devuelve una cadena de carácteres que describe el tipo de datos del
valor devuelto. Es similar a TYPE() pero difiere en que eval.a realmente
el argumento especificado y determina el tipo del valor devuelto. Por
esta raz.n, permite determinar el tipo de las variablesólocales y
estáticas, funciónes definidas por el usuario y funciónes de la
biblioteca EXTEND.LIB. TYPE(), por el contrario, utiliza el operador de
macro (&) para evaluar el tipo del argumento. Observe que si el
argumento no existe se producirá un error ("error no definido"), a
diferencia de TYPE que devuelve "U".
Ejemplos
. Estos ejemplos muestran los valores de retorno para varios
tipos de datos:
? VALTYPE(1) // Resultado: N
? VALTYPE("GOOB") // Resultado: C
? VALTYPE(NIL) // Resultado: U
? VALTYPE(matriz) // Resultado: A
? VALTYPE(bloque) // Resultado: B
Ficheros: La biblioteca asociada es CLIPPER.LIB.
VERSION()
Devuelve la versi.n de CA-Clipper
------------------------------------------------------------------------------
Sintaxis
VERSION() --> cVersi.n
Devuelve
VERSION() devuelve el número de versi.n de la biblioteca EXTEND.LIB,
como un valor de carácteres.
Descripción
VERSION() es una función de entorno que devuelve el número de versi.n de
la biblioteca EXTEND.LIB de CA-Clipper.
Ficheros: La biblioteca asociada es EXTEND.LIB.
WORD()*
Convierte los parámetros numéricos del mandato CALL de doble precisión a
enteros sencillos
------------------------------------------------------------------------------
Sintaxis
WORD(<nNúmero>) --> NIL
Argumentos
<nNúmero> es el valor numérico que se va a convertir en entero,
especificado en el rango de m.s/menos 32.767, inclusive.
Devuelve
Utilizado como un argumento del mandato CALL WORD() devuelve un número
entero. En cualquier otro contexto, devuelve NIL.
Descripción
WORD() es una función de conversión que convierte los parámetros
numéricos del mandato CALL de doble precisión a enteros. WORD() es una
función de compatibilidad, por lo que su utilización no es recomendable.
Tanto el mandato CALL como la función WORD() se anulan por los programas
del Sistema Extendido. Si desea más información, consulte el capítulo
Utilizaci.n del Sistema Extendido en el Manual de Consulta T.cnica.
Ejemplos
. Este ejemplo utiliza WORD() como argumento del mandato CALL:
CALL Cproc WITH WORD(30000), "Un texto"
Ficheros: La biblioteca asociada es CLIPPER.LIB.
YEAR()
Convierte un valor de fecha en un a.o en formato numérico
------------------------------------------------------------------------------
Sintaxis
YEAR(<fFecha>) --> nA.o
Argumentos
<fFecha> es el valor de fecha que se va a convertir.
Devuelve
YEAR() devuelve el a.o contenido en el valor de fecha especificado,
insertando las cifras de siglo para dar un valor numérico de cuarto
dígitos. El valor que devuelve no depende del formato actual de
SET DATE o SET CENTURY. Si se especifica una fecha nula, (CTOD(""))
devuelve cero.
Descripción
YEAR() es una función de conversión que convierte un valor de fecha en
un a.o en formato numérico. Se utiliza para cálculos en informes
peri.dicos o para mostrar fechas con formato.
YEAR() forma parte de un grupo de funciónes que devuelven los
componentes de un valor de fecha en formato numérico. Este grupo incluye
DAY() y MONTH() que devuelven el d.a y el mes, respectivamente, como
valores numéricos.
Ejemplos
. Estos ejemplos muestran la utilización de YEAR() utilizando la
fecha del sistema:
? DATE() // Resultado: 09/20/90
? YEAR(DATE()) // Resultado: 1990
? YEAR(DATE()) + 11 // Resultado: 2001
. Este ejemplo crea una función definida por el usuario que
utiliza YEAR() para dar formato a un valor de fecha como mes, d.a,
a.o:
? Mdy(DATE()) // Resultado: 20 de Septiembre de 1990
FUNCTION Mdy( fFecha )
RETURN (LTRIM(STR(DAY(fFecha))) + "de" + cMonth(fFecha) +" "+;
STR(YEAR(fFecha))
Ficheros: La biblioteca asociada es CLIPPER.LIB.