• Domingo 15 de Diciembre de 2024, 00:33

Autor Tema:  Evitar Echo Del Teclado  (Leído 2804 veces)

FEckEZ

  • Miembro activo
  • **
  • Mensajes: 46
    • Ver Perfil
Evitar Echo Del Teclado
« en: Miércoles 17 de Marzo de 2004, 14:55 »
0
buena la pregunta es la siguiente.... si quisiera leer una cadena de texto, pero sin que el echo del teclado se presentara en pantalla, como lo podria hacer. existe alguna funcion ANSI que lo haga ya? o tengo que implementar a mano la funcion? si es asi.. alguna sugerencia que pudiera ayudar.

bye

Kev

  • Miembro HIPER activo
  • ****
  • Mensajes: 654
    • Ver Perfil
Re: Evitar Echo Del Teclado
« Respuesta #1 en: Miércoles 17 de Marzo de 2004, 16:35 »
0
Improvisa:

Un bucle infinito que termine cuando uno presione la tecla ENTER
un arrar tipo char y recorres y asignas el caracter
La teoria es asesinada tarde o temprano por la experiencia
Albert Einstein
Kev - 3 DCE
-----------------------------------------------------
Articulos:
Convertir texto a imagen en ASP.NET
Trabajando con el Global.asax

QliX=D!

  • Miembro MUY activo
  • ***
  • Mensajes: 214
    • Ver Perfil
Re: Evitar Echo Del Teclado
« Respuesta #2 en: Jueves 18 de Marzo de 2004, 14:59 »
0
Getch()
Creo que era esa que te daba el caracter si n mostrarlo en pantalla si no es esa es de "esa familia" de funciones.
QliX=D! - From the top of Tsunami

Kev

  • Miembro HIPER activo
  • ****
  • Mensajes: 654
    • Ver Perfil
Re: Evitar Echo Del Teclado
« Respuesta #3 en: Martes 23 de Marzo de 2004, 21:07 »
0
Disculpa no me supe hacer enteder:
Declara un array donde almacenaras tu cadena.
Luego haz un bucle que termine cuando el usuario presione la tecla Enter, de otra forma almacena el caracter en la posicion que le corresponda dentro del array.
Para leer cada caracter usa getch();

Nota.- Para el uso de getch(); debes incluir la libreria conio.h

Salu2.
Si tienes alguna duda cuentamelo
 :hola:
La teoria es asesinada tarde o temprano por la experiencia
Albert Einstein
Kev - 3 DCE
-----------------------------------------------------
Articulos:
Convertir texto a imagen en ASP.NET
Trabajando con el Global.asax

FEckEZ

  • Miembro activo
  • **
  • Mensajes: 46
    • Ver Perfil
Re: Evitar Echo Del Teclado
« Respuesta #4 en: Miércoles 24 de Marzo de 2004, 03:48 »
0
gracias a los dos, lo que comentan si funciona y ahora lo tengo implementado... pero solo hay un problema, por ahora el programa lo estoy implementando en windows y no tengo ningun problema con la libreria conio, pero en el futuro quisiera poder utilizarlo en linux y no encuentro la forma de poder hacer la lectura de los caracteres utilizando solo librerias estandard

desorden

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
Re: Evitar Echo Del Teclado
« Respuesta #5 en: Miércoles 24 de Marzo de 2004, 12:28 »
0
Una manera estándar no existe. Tienes dos opciones:
  • Implementar tú mismo la función en linux. Tienes que dominar el manejo de funciones como tcgeattr, tcsetattr, read, select...</li>
  • Usar la implementación de otra persona. Existe una versión de la biblioteca conio para sistemas basados en unix llamada uconio.</li>
Un saludo...
desorden

FEckEZ

  • Miembro activo
  • **
  • Mensajes: 46
    • Ver Perfil
Re: Evitar Echo Del Teclado
« Respuesta #6 en: Martes 30 de Marzo de 2004, 15:57 »
0
de nuevo gracias, por el momento solo consigo implementarlo en windows. las unicas señales que encuentro del source de las librerias que menciona desorden  son esta pagina: http://crazylovetrain.hypermart.net que ya ha dejado de funcionar gracias a que hypermart.net dejo de ofrecer su servicio de hosting gratis.... y un rpm para instalar en redhat, el unico problema es que quiero ver los sources de la libreria. pero no doy con ellos por ningun lado.

gracias por todo.

-SB-

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
Re: Evitar Echo Del Teclado
« Respuesta #7 en: Martes 30 de Marzo de 2004, 16:35 »
0
Una pequeña aportacion para la version en linux:

Código: Text
  1. #include &#60;stdlib.h&#62;
  2. #include &#60;termio.h&#62;
  3. #define STDIN 0
  4. void echo_on_off ()
  5. {struct termio tm;
  6.  ioctl(STDIN, TCGETA, &tm);
  7.  if (tm.c_lflag & ECHO)
  8.    tm.c_lflag &= ~ECHO;
  9.  else
  10.    tm.c_lflag |= ECHO;
  11.  ioctl(STDIN, TCSETA, &tm);
  12. }
  13.  

Si llamas a esta funcion, el echo se desactiva hasta que la vuelves a llamar.

Para leer la string puedes añadirle algo asi:

Código: Text
  1. #define BUFSIZE &#60;long de la string&#62;
  2. // especificacion de la funcion..
  3. {int n; char buf[BUFSIZE];
  4.  n = read(STDIN, buf, BUFSIZE);
  5.  // n es la cantidad de caracteres que se han leido hasta la pulsacion de enter.
  6.  // los primeros n caracteres de buf son los leidos, lo demas es basura.
  7. }
  8.  

Un saludo!

FEckEZ

  • Miembro activo
  • **
  • Mensajes: 46
    • Ver Perfil
Re: Evitar Echo Del Teclado
« Respuesta #8 en: Miércoles 31 de Marzo de 2004, 16:14 »
0
con el ejemplo de -SB- vi un poco mas la luz y ahora mismo me encuentro leyendo la pagina del manual de termio

de nuevo.. muchas gracias a todos por la info.