DocumentaciónLEER_TECLA(Sin argumentos)

LEER_TECLA()\texttt{LEER\_TECLA}()

Nombre

LEER_TECLA - Lee una tecla disponible sin bloquear la ejecucion.

Sinopsis

tecla = LEER_TECLA()

Descripcion

Lee una tecla del buffer de teclado cuando hay una disponible.

Puede retornar un caracter comun, el nombre de una tecla especial o un string vacio si no habia nada para leer.

Comportamiento

  • No recibe argumentos.
  • Retorna un STRING con la tecla leida.
  • Si no hay tecla disponible, retorna "".

Funciones API relacionadas

  • HAY_TECLA()

Parámetros

ParámetroTipoDescripción
Sin argumentosNo recibe argumentos.

Valor de retorno

STRING - Tecla leída, nombre especial de tecla o string vacío.

Ejemplo

ejemplo.blox
FUNCION PRINCIPAL

INICIO "Cliente de Chat"

    SOCKET s
    s.ip = "127.0.0.1"
    s.port = 5555

    STRING mensaje_enviar, mensaje_recibido, tecla
    NUMERICO n
    LOGICO continuar

    CONECTAR(s)
    continuar = VERDADERO
    mensaje_enviar = ""

    IMPRIMIR("\nyo> ")

    MIENTRAS (continuar) HACER

        // 1. Leer red solo si hay datos disponibles
        SI (HAY_DATOS(s)) ENTONCES
            SI (RECIBIR(s)) ENTONCES
                mensaje_recibido = s.data
                IMPRIMIR("\n\nservidor> ", mensaje_recibido)

                SI (IGUAL(mensaje_recibido, "salir")) ENTONCES
                    continuar = FALSO
                SINO
                    IMPRIMIR("\nyo> ", mensaje_enviar)
                FIN_SI
            FIN_SI
        FIN_SI

        // 2. Leer teclado sin bloquear
        SI (HAY_TECLA()) ENTONCES
            tecla = LEER_TECLA()

            SI (IGUAL(tecla, "ENTER")) ENTONCES
                SI (!IGUAL(mensaje_enviar, "")) ENTONCES
                    ENVIAR(s, mensaje_enviar)

                    SI (IGUAL(mensaje_enviar, "salir")) ENTONCES
                        continuar = FALSO
                    FIN_SI

                    mensaje_enviar = ""
                    IMPRIMIR("\nyo> ")
                FIN_SI
            SINO
                SI (IGUAL(tecla, "BACKSPACE")) ENTONCES
                    n = LONGITUD(mensaje_enviar)
                    SI (n > 0) ENTONCES
                        mensaje_enviar = SUBSTR(mensaje_enviar, 1, n - 1)
                    FIN_SI
                SINO
                    SI (LONGITUD(tecla) == 1) ENTONCES
                        mensaje_enviar = UNIR(mensaje_enviar, tecla)
                        IMPRIMIR(tecla)
                    FIN_SI
                FIN_SI
            FIN_SI
        FIN_SI

        ESPERAR(10)

    FIN_MIENTRAS

    DESCONECTAR(s)
    IMPRIMIR("\nCliente desconectado.")

FIN_FUNCION