Capturar Tecla Con Gambas En Modo Consola


Objetivo: Capturar Tecla Con Gambas En Modo Consola
Hola a todos.
' Es la primera vez que escribo en este foro pero ya llevo algun tiempo programando en Gambas2
Bueno. mi cuestion es que no se como hacer para que en una ejecucion EN MODO CONSOLA (osea sin interfaz grafica, todo en texto) en gambas puedo saber si se esta presionando alguna determinada tecla.
Lo que estoy haciendo es un programa en modo texto para hacer una secuencia de luces por puerto paralelo y lo que necesito es que es el medio de esa ejecucion pueda cancelarla con alguna tecla.
Ya probe con Key pero no funciona sin formularios. INPUT no me sirve porque para ingresar algo se frena el programa. Y Asc y Ascii? no son lo que busco.
Si Activo los componentes graficos (gb.gui) igual no funciona porque necesita algun formulario y eso no me sirve.
Lo que tengo en mente es algo asi por ejemplo:

PUBLIC SUB Main()
DO
IF (se presiona la tecla Enter) THEN
PRINT "Se ha presionado Enter"
ENDIF
WAIT 1
LOOP

Pero no se como completar la parte donde dice (se presiona la tecla Enter)
Ya busque en google, en gambasdoc.org, en esta pagina y a los profesores de mi escuela pero ninguno tiene la respuesta.

Muchas Gracias por leer y si saben algo por favor respondan
Un abrazo

Version: gambas 2.19
SO: ubuntu 10.04 (el programa es para un Debian Squeeze sin interfaz grafica)

última edición por Fernandito el Sabado, 02 Julio 2011, 07:22; editado 1 vez
Perfil MP  
Objetivo: Re: Capturar Tecla Con Gambas En Modo Consola
Podias implementar una pequeña funcion en C, que se encargara de leer el teclado y devolver si has pulsado "enter"...

Es lo que se me occurre a primera vista...

Objetivo: Re: Capturar Tecla Con Gambas En Modo Consola
Mira, he estado buscando:


la funcion en c seria:

#include <stdio.h>
#include <time.h>
#include <term.h>
#include <unistd.h>

static int CaracterPendiente = -1;

int leertecla() {
char Caracter;

if( CaracterPendiente != -1 ) {
Caracter = CaracterPendiente;
CaracterPendiente = -1;
return( Caracter );
}
read( 0, &Caracter, 1 );
return( Caracter );
}



Y para compilarlo como libreria dinamica, sigue este post:
http://jsbsan.wordpress.com/2010/11...-c-en-gnulinux/

En ese mismo post, hay una explicacion de Tururu, de como usarla en un pequeño programa en gambas.


Espero que te funcione asi..

Saludos

Objetivo: Re: Capturar Tecla Con Gambas En Modo Consola
Ve el código de ejemplo que se encuentra en http://gambasdoc.org/help/comp/gb/file/in?view

' gambas module file

PUBLIC SUB Main()
DIM inputLine AS String
' Loop until the end of the standard input file stream
WHILE inputLine <> "quit" 'Eof(File.In) '<------------ CAMBIADA CONDICIÓN DE TERMINACIÓN
' Read a line from standard input. This is the same as:
' LINE INPUT inputLine
LINE INPUT #File.In, inputLine
' Print to standard output. This is the same as:
' PRINT inputLine
PRINT #File.Out, inputLine
' Print to standard error
PRINT #File.Err, inputLine
WEND
END



EDITO:

Disculpa, la respuesta anterior no te servirá. Tal vez puede que te sirva algo como:

' gambas module file

PUBLIC SUB Main()

WHILE TRUE
' Cualquier otro proceso
PRINT "hola"
WAIT 10
WEND

END

PUBLIC SUB Application_Read()

DIM inputLine AS String
READ #File.In, inputLine, -1
IF inputLine = "q" THEN QUIT

END



Saludos!

última edición por razaAztk el Domingo, 03 Julio 2011, 02:06; editado 1 vez
Objetivo: Re: Capturar Tecla Con Gambas En Modo Consola
Hola a todos
razaAztk: Probe lo que me dijiste (lo segundo) pero no funciono porque cuando quiere leer (READ) file.in el programa para, es como si ubiera un: INPUT inputLine. Pero Muchas gracias por la respuesta, lo voy a modificar y si encuentro la forma les aviso pero si ustedes por casualidad la encuentran antes podrian publicarla por favor

jsbsan: Sinceramente no probe lo tuyo porque principalmente no se nada de C. Segui las instrucciones como dice en el link que me pasaste (http://jsbsan.wordpress.com/2010/11/08/gambas-el-complemento-perfecto-para-c-en-gnulinux/) pero no logro entender como utilizarlo. Perodona mi ignorancia en este codigo . Ademas no se como funciona tu programa, no se si el resultado es numerico o boleano o que. Pero de todos modos Muchas gracias por responder! si por casualidad encontras la respuesta y la publicaras te agradeceria aun mas!. Aunque lo ideal seria hacerlo pero sin salir de gambas.

Muchas gracias a ambos por ayudar a estudiantes como yo
un abrazo

última edición por Fernandito el Lunes, 04 Julio 2011, 17:22; editado 1 vez
Perfil MP  
Objetivo: Re: Capturar Tecla Con Gambas En Modo Consola
Hola de nuevo

Les escribo para preguntar si conocen alguna forma de comprobar si el bloqueo de mayusculas esta activado o no para el modo consola de gambas y que el programa no espere que el usuario ingrese algun dato, sino que compruebe directamente el estado del bloqueo de mayusculas y siga corriendo.
Entonces mi programa comprueba esto y sigue su marcha.

Muchisimas Gracias por haber leido mi pregunta y si tienen alguna idea les estaria agradecido si me la dijeran.
Un abrazo a todos los programadores y linuxeros

Perfil MP  
Objetivo: Re: Capturar Tecla Con Gambas En Modo Consola
Descargate la "Applicazioni" llamada "Led-monitor" de http://www.gambas-it.org/wp/?page_id=21
Allí el programador usa una orden externa (xset q) para lograr lo que buscas.

Saludos!

Objetivo: Re: Capturar Tecla Con Gambas En Modo Consola
Holaaaa

razaAztk: Probe lo que me dijiste y lo adapte a lo que necesito Y FUNCIONOOO!!! Ademas me da mas de lo que yo queria!! Muchisimas Gracias razaAztk! y muchisimas gracias a jsbsan tambien por darme esa info!

Despues de septiempre posteo el codigo completo para que vean que es. Por ahora no porque es secreto. jajajaja

Muchisimas Gracias por esto.
Un abrazo.

Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.4582s (PHP: -80% SQL: 180%)
Consultas SQL: 48 - Debug off - GZIP Activado