unlock_file

Sintaxis: include file.e
unlock_file(fn, s)
Descripción:
Desbloquea el archivo 'fn' abierto, o una parte de él. Tiene que haber sido bloqueado previamente usando lock_file(). En DOS32 y WIN32 se puede desbloquear un rango de bytes dentro de un archivo al especificar el parámetro 's' como {first_byte, last_byte}. El mismo rango de bytes tiene que haber sido bloqueado previamente por una llamada a lock_file(). En Linux/FreeBSD solamente se puede bloquear y desbloquear un archivo completo. Para desbloquear un archivo completo, el parámtro 's' debería ser {}. En Linux/FreeBSD, 's' siempre tiene que ser {}.
Comentarios: Debería desbloquear el archivo tan pronto como sea posible, para que otros procesos puedan usarlo.
Cualquier archivo bloqueado, se desbloqueará automáticamente cuando el programa termine.
Ver lock_file() por comentarios adicionales y un ejemplo.
Ver también: lock_file

unregister_block

Sintaxis: include machine.e (or safe.e)
unregister_block(a)
Descripción:
Quita un bloque de memoria de la lista de bloques seguros mantenida por safe.e (la versión de depuración de machine.e). El bloque comienza en la dirección 'a'.
Comentarios:
Esta rutina solamente tiene sentido con propósitos de depuración. Usela para desregistrar bloques de memoria que previamente hayan sido registrados con register_block(). Al desregistrar un bloque, se lo quita de la lista de bloques seguros mantenida por safe.e. Esto evita que el programa realice lecturas o escrituras adicionales de memoria dentro de un bloque.
Ver register_block() por comentarios adicionales y un ejemplo.
Ver también: register_block, safe.e

upper

Sintaxis: include wildcard.e
x2 = upper(x1)
Descripción: Convierte un átomo o secuencia a mayúsculas.
Example:
s = upper("Euphoria")
-- s es"EUPHORIA"

a = upper('g')
-- a es 'G'

s = upper({"Euphoria", "Programación"})
-- s es {"EUPHORIA", "PROGRAMACIÓN"}

Ver también: lower

use_vesa

Platform: DOS32
Sintaxis: include machine.e
use_vesa(i)
Descripción:
use_vesa(1) forzará a Euphoria a usar los gráficos estándar VESA. Esto puede provocar que los programas Euphoria trabajen mejor en los modos gráficos SVGA con ciertas tarjetas de video. use_vesa(0) restablecerá el modo original en que Euphoria usaba la tarjeta de video.
Comentarios:
La mayoría de la gente puede ignorar esto.Sin embargo, si experimenta alguna dificultad en los modos gráficos de SVGA debería probar llamando a use_vesa(1) al comienzo del programa, antes de cualquier llamada a graphics_mode().

No se deberían usar otros argumentos para use_vesa() que no sean 0 y 1.

Example:
use_vesa(1)
fail = graphics_mode(261)

Ver también: graphics_mode

value

Sintaxis: include get.e
s = value(st)
Descripción:
Lee la cadena de representación de un objeto Euphoria, y computa el valor de ese objeto. Devuelve una secuencia de 2 elementos, {error_status, value}, donde error_status puede ser:
    GET_SUCCESS -- se encontró una representación válida de un opbjeto
    GET_EOF     -- fin de la cadena alcanzado demasiado pronto
    GET_FAIL    -- la sintaxis es errónea
Comentarios:
Esta función trabaja igual que get(), pero lee desde una cadena que puede suministrarle, en lugar de un archivo o dispositivo.

Después de leer una representación válida de un objeto Euphoria, value() dejará de leer e ignorará cualquier otro caracter de la cadena. Por ejemplo: "36" y "36P" le darán ambos {GET_SUCCESS, 36}.

Ejemplo 1:
s = value("12345"}
-- s es {GET_SUCCESS, 12345}

Ejemplo 2:
s = value("{0, 1, -99.9}")
-- s es {GET_SUCCESS, {0, 1, -99.9}}

Ejemplo 3:
s = value("+++")
-- s es {GET_FAIL, 0}

Ver también: get, sprintf, print

video_config

Platform: DOS32, Linux, FreeBSD
Sintaxis: include graphics.e
s = video_config()
Descripción:
Devuelve una secuencia de valores describiendo la configuración actual de video:
{monitor color?, modo gráfico, filas de texto, columnas de texto, píxeles x, píxeles y, cantidad de colores, cantidad de páginas}

Las siguientes constantes están definidas en graphics.e:

    global constant VC_COLOR   = 1,
                    VC_MODE    = 2,
                    VC_LINES   = 3,
                    VC_COLUMNS = 4,
                    VC_XPIXELS = 5,
                    VC_YPIXELS = 6,
                    VC_NCOLORS = 7,
                    VC_PAGES   = 8
Comentarios: Esta rutina le hace fácil parametrizar un programa, porque trabaja con diferentes modos gráficos.

En la PC hay dos tipos de modos gráficos. El primer tipo, modo texto, que le permite imprimir solamente texto. El segundo tipo, modo gráficos de píxel, que le permite dibujar píxeles, o puntos, en varios colores, tanto como texto. Puede decir que está en modo texto, cuando los campos VC_XPIXELS y VC_YPIXELS valgan 0. Las rutinas de librería tales como polygon(), draw_line(), y ellipse() solamente trabajan en modo gráfico de píxel.

Example:
vc = video_config()  -- en modo 3 con 25 líneas de texto:
-- vc es {1, 3, 25, 80, 0, 0, 32, 8}

Ver también: graphics_mode

wait_key

Sintaxis: include get.e
i = wait_key()
Descripción: Devuelve la próxima tecla presionada por el usuario. No devuelve nada hasta que se presiona una tecla.
Comentarios: Podría obtener el mismo resultado usando get_key() de este modo:
    while 1 do
        k = get_key()
        if k != -1 then
            exit
        end if
    end while
Sin embargo, en sistemas multitarea como Windows o Linux/FreeBSD, este "ocupado" tendería a hacer más lento el sistema. wait_key() le permite al sistema operativo hacer otras tareas, mientras el programa espera que el usuario presione una tecla.

También podría usar getc(0), asumiendo que el número de archivo 0 es la entrada desde el teclado, excepto que no podría levantar los códigos especiales de teclas de función, teclas de flecha, etc.

Ver también: get_key, getc

walk_dir

Sintaxis: include file.e
i1 = walk_dir(st, i2, i3)
Descripción:
Esta rutina "caminará" a través de un directorio cuya ruta esté dada por 'st'. 'i2' es el routine id de una rutina que se suministra. walk_dir() llamará a su rutina una vez por cada archivo y subdirectorio de 'st'. Si 'i3' no es cero (VERDADERO), entonces los subdirectorios de 'st' serán "caminados" recursivamente.

La rutina que se suministra debería aceptar la ruta y dir entry() por cada archivo y subdirectorio. Esta rutina debería devolver 0 para continuar la ejecución de walk_dir(), o no cero para detenerlo.

Comentarios:
Este mecanismo le permite escribir una función simple que gestiona un archivo por vez, mientras walk_dir() se encarga del proceso de caminar a través de los archivos y los subdirectorios.

Por defecto, los archivos y subdirectorios serán visitados en orden alfabético. Para usar un orden diferente, establecer el entero global my_dir al routine id de su función dir() modificada que ordena las entradas del directorio de forma distinta. Ver la función dir() por defecto en file.e.

Example:
function look_at(sequence path_name, sequence entry)
-- esta función acepta dos secuencias como argumentos
    printf(1, "%s\\%s: %d\n",
           {path_name, entry[D_NAME], entry[D_SIZE]})
    return 0 -- continuar el recorrido
end function

exit_code = walk_dir("C:\\MYFILES", routine_id("look_at"), TRUE)

Programa de ejemplo: euphoria\bin\search.ex
Ver también: dir, current_dir

where

Sintaxis: include file.e
i = where(fn)
Descripción:
Esta función devuelve la posición del byte actual en el archivo 'fn'. Esta posición se actualiza leyendo, escribiendo o buscando en el archivo. Su valor indica la posición del próximo byte en el archivo, en donde se leerá o escribirá.
Ver también: seek, open

wildcard_file

Sintaxis: include wildcard.e
i = wildcard_file(st1, st2)
Descripción:
Devuelve 1 (verdadero) si el nombre del archivo 'st2' coincide con el patrón 'st1'. Devuelve 0 (falso) en caso contrario. Esto es similar a la coincidencia de patrones de DOS, pero mejor en algunos casos. * significa 0 o más caracteres, ? significa un solo caracter. En Linux y FreeBSD las comparaciones de caracteres son sensibles a la mayúscula; en DOS y Windows no lo son.
Comentarios:
Tiene que usar esta función para verificar la salida de la rutina dir() para los nombres de archivos que coincidan con el patrón suministrado por el usuario del programa.

En DOS "*ABC.*" coincidirá con todos los archivos. wildcard_file("*ABC.*", s) solamente coincidirá cuando la parte final del nombre del archivo contenga "ABC" (como se esperaría).

Ejemplo 1:
i = wildcard_file("AB*CD.?", "aB123cD.e")
-- i se establece a 1 en DOS o Windows, 0 en Linux o FreeBSD

Ejemplo 2:
i = wildcard_file("AB*CD.?", "abcd.ex")
-- i se establece a 0 en todos los sistemas, 
-- debido a que la extensión del archivo tiene 2 letras en lugar de 1

Programa de ejemplo: bin\search.ex
Ver también: wildcard_match, dir

wildcard_match

Sintaxis: include wildcard.e
i = wildcard_match(st1, st2)
Descripción:
Esta función realiza la búsqueda general de una cadena contra un patrón que contiene los símbolos * y ? Devuelve 1 (verdadero) si la cadena 'st2' coincide con el patrón 'st1'. Devuelve 0 (falso) en caso contrario. * significa 0 o más caracteres. ? siginifica un solo caracter. La comparación de caracteres es sensible a la mayúscula.
Comentarios:
Si desea hacer comparaciones que no tengan en cuenta mayúsculas y minúsculas, debe convertir 'st1' y 'st2' a mayúsculas con upper(), o a minúsculas con lower() antes de llamar a wildcard_match().

Si quiere detectar un patrón en cualquier lugar dentro de una cadena, agregue * a cada extremo del patrón:

i = wildcard_match('*' & pattern & '*', string)
No hay forma de tratar literalmente a * o ? en un patrón.
Ejemplo 1:
i = wildcard_match("A?B*", "AQBXXYY")
-- i es 1 (VERDADERO)

Ejemplo 2:
i = wildcard_match("*xyz*", "AAAbbbxyz")
-- i es 1 (VERDADERO)

Ejemplo 3:
i = wildcard_match("A*B*C", "a111b222c")
-- i es 0 (FALSO) porque no coinciden las mayúsculas con las minúsculas
Programa de ejemplo: bin\search.ex
Ver también: wildcard_file, match, upper, lower, compare

wrap

Sintaxis: include graphics.e
wrap(i)
Descripción: Le permite al texto enrollarse alrededor del margen derecho (i = 1) o truncarse (i = 0).
Comentarios: Por defecto, es texto estará enrollado.

Use wrap() en modos de texto o modos gráficos de píxel cuando se muestren largas líneas de texto.

Ejemplo:
puts(1, repeat('x', 100) & "\n\n")
-- ahora tiene una línea de 80 'x' siguiendo a una línea de 20 'x' más
wrap(0)
puts(1, repeat('x', 100) & "\n\n")
-- crea solo una línea de 80 'x'

Ver también: puts, position

xor_bits

Sintaxis: x3 = xor_bits(x1, x2)
Descripción: Realiza la operación lógica XOR (O exclusivo) sobre los correspondientes bits en 'x1' y 'x2'. El bit 'x3' será 1 cuando uno de los dos bits en 'x1' o 'x2' sea 1 y el otro sea 0.
Comentarios:
Los argumentos de esta función pueden ser átomos o secuencias. Se aplican las reglas para operaciones sobre secuencias.

Los argumentos tiene que ser representables como números de 32 bits, con o sin signo.

Si intenta manejar valores de 32 bits (completos), debería declarar las variables como átomos, en lugar de declararlas como enteros. El tipo entero de Euphoria está limitado a 31 bits.

Los resultados se tratan como números con signo. Serán números negativos cuando el bit de mayor orden sea 1.

Ejemplo 1:
a = xor_bits(#0110, #1010)
-- a es #1100

Ver también: and_bits, or_bits, not_bits, int_to_bits, int_to_bytes

 

... continua
 
A a B   |   C a D   |   E a G   |   H a O   |   P a R   |   S a T   |  U a Z