• Domingo 22 de Diciembre de 2024, 18:16

Autor Tema:  Lectura De Cadenas De Caracter En Modo Grafico  (Leído 4920 veces)

dARK mAGIC

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Lectura De Cadenas De Caracter En Modo Grafico
« en: Sábado 7 de Agosto de 2004, 15:13 »
0
Hola amigos programadores.    :comp:

Estoy realizando un tutorial interactivo para aprender lenguaje C++ basico con 21 capitulos, pero hay un problema, tengo una presentacion grafica y cuando el usuario desea ingresar el numero de capitulo en esta presentacion, al momento de leer el dato, supongamos, el usuario teclea el numero uno, para el primer capitulo, este siempre es impreso primero en la parte superior izquierda de la pantalla y no donde yo quiero que lo muestre. Me he dado cuenta que quiza esto pasa porque el dato lo estoy leyendo con la siguiente instruccion:
 
  posx=400;
   for (cont = 0; cont <= 2; cont ++,posx+5)
   {  
        capitulo_opcion[cont]=getch();
        outtetxy(posx,460,cadena_opcion);
    }

 Con esta instruccion siempre que el usuario ingresa el numero de capitulo, primero lo muestra en la parte superior izquierda de la pantalla y despues donde yo quiero. Mi pregunta es ¿Existe alguna instruccion parecida a printf() en modo grafico para leer datos?.

Gracias. Salu2   :hola:

       
            «==]|« »»»» » tHE dARK mAGIC « «««« »|[===»

nicokiki

  • Miembro MUY activo
  • ***
  • Mensajes: 298
    • Ver Perfil
Re: Lectura De Cadenas De Caracter En Modo Grafico
« Respuesta #1 en: Sábado 7 de Agosto de 2004, 20:24 »
0
Hola!!!!

Citar
¿Existe alguna instruccion parecida a printf() en modo grafico para leer datos?.

Mi pregunta es, (perdon por la ignorancia) que es el modo grafico???
Trabajas con dialogos, SDI, MDI o q??? En serio lo pregunto.

Ahora volviendo a lo q pegue mas arriba, q es algo parecido a printf() para leer datos. Me refiero, en C++ existe cout para stdout y cin para stdin. Pero hay mil cosas mas tipo getch(), putc(), scanf(), gets() (no recomendado) y cosas del estilo

Bueno, en si no entendi mucho lo q pedis pero si puedo ayudar en algo, pedilo

Binary

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Lectura De Cadenas De Caracter En Modo Grafico
« Respuesta #2 en: Sábado 7 de Agosto de 2004, 20:34 »
0
solo por intuicion, verifica si no hay algo como gets()
Porque getch --> get ch, entonces deberia haber algo de get string o algo asi.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Lectura De Cadenas De Caracter En Modo Grafico
« Respuesta #3 en: Lunes 9 de Agosto de 2004, 02:15 »
0
lo ciefto es que no hay nada que te haga eso..
deebras crear tui propia funcion utilizando las funciones bioskey y kbhit y logicamnte textout.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Gigi0

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Lectura De Cadenas De Caracter En Modo Grafico
« Respuesta #4 en: Lunes 9 de Agosto de 2004, 06:05 »
0
Qué tal, antes que nada saludos y espero esto aún te sirva...
Resulta que encontré varios errores, que son algo delicados a la hora de programar, pero iwal se corrigen con práctica... y son los siguientes:
 1.- Primero que nada debemos ver la forma en la que declaraste la variable 'capitulo_opcion'.
 2.- ' capitulo_opcion' es la misma que quisiste imprimir en outtextxy?, si es así te equivocaste 'cadena_opcion'. Asumí que era la misma.
 3.- Recordarás que la pantalla en DOS es de 640X480. Bueno, tú problema está en que al asumir que posx=400, esto quiere decir que estarás más inclinado a la derecha y va aumentando de 5 en 5 según tu for(te faltó el '=', sería posx+=5, si no no da, y por cierto tu contador se detiene en 2 letras) después, en tu outtextxy pones que la posición en 'y' sea de 460 esto es, hasta abajo!!. No sé si lo quieras centrado, pero para eso tienes dos funciones
     getmaxx() para x , que sería  posx=getmaxx()/2; //eso te lo pone a la mitad en x
     getmaxy() para y, que sería   posy=getmaxy()/2;//esto en y
 
 posx=400;
for (cont = 0; cont <= 2; cont ++,posx+5)
{
capitulo_opcion[cont]=getch();
outtetxy(posx,460,cadena_opcion);
}

4.- Ahora, dependiendo de como declaraste cadena_opcion, que debe ser
char cadena_opcion[10]; //o algo así
al llamarla en outtextxy(posx,posy,cadena_opcion);/*asi te saca la cadena completa
                                                                           en cada for, lo que debe ir si es        
                                                                           que quieres que solo salga letra
                                                                por letra, es:*/
outtextxy(posx,posy,&cadena_opcion[cont]);
con eso queda...
espero haberme explicado, si no... agrégame a tu msn y lo platicamos.
Saludos y suerte
PD te posteo el codigo que hice yo y quedó...

char cadena_opcion[10];
x = getmaxx() / 2;
y = getmaxy() / 2;
for (int cont = 0; cont <= 9; cont++)//aqui declaré cont dentro del for,no es                                                                       necesario declararlo antes, por si te fala eso
 {                                                   //Limpiamos la cadena de cualquier basura
 cadena_opcion[cont]=NULL; }
 for (cont = 0; cont <= 9; cont ++,x+=10)
 {
 cadena_opcion[cont]=getch();
 outtextxy(x,y,&cadena_opcion[cont]);

 }
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

piyey

  • Miembro MUY activo
  • ***
  • Mensajes: 101
  • Nacionalidad: ni
    • Ver Perfil
    • Piyeycorp® - La imaginación es el límite
Re: Lectura De Cadenas De Caracter En Modo Grafico
« Respuesta #5 en: Jueves 26 de Agosto de 2004, 04:09 »
0
Hola dARK mAGIC... :hola:

En este momento estoy leyendo tu consulta y dejame decirte que tengo tu solución. Yo he creado unos archivos de cabecera para eso, estos son TEXTBOX.H que te brindan la opcion de poner una caja de texto como en guindous, ademas de BOTON.H que es para los botones, COMBOBOX.H para las cajas de combo entre otras herramientas... :rolleyes:

El problema es que ahora mismo estoy en la Universidad y no los tengo a mano pero te aseguro que mañana mismo te los adjunto... :P


Espero que todavía los estes necesitando, o de todos modos en un futuro te servirán de mucho, te lo aseguro.

Seeyou!!!

Piyey
Si no vives para servir...
no sirves para vivir.


No soy el dueño del mundo...
pero si el hijo del dueño.


Entre la linea que divide la realidad de la ilusión...
se encuentra la imaginación

IlusionLand - Piyey

piyey

  • Miembro MUY activo
  • ***
  • Mensajes: 101
  • Nacionalidad: ni
    • Ver Perfil
    • Piyeycorp® - La imaginación es el límite
Re: Lectura De Cadenas De Caracter En Modo Grafico
« Respuesta #6 en: Miércoles 1 de Septiembre de 2004, 03:27 »
0
Hola dARK mAGIC... perdon por el retraso, pero la universidad me tiene muy ocupado :comp: ...

Pero bueno te traje los archivos que te había dicho, lo unico que estos los hice cuando estaba en segundo año y el codigo es muy largo :P , hay mucho desperdicio de lineas...
Hasta ahora me puse a trabajar en ellos para que queden mejor :smartass: , ya que no he tocado C++ desde entonces (desde que hice las librerias)... espero que te sean de utilidad y cuentame luego si les diste uso...


Seeyou!!! :hola:

Piyey.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
Si no vives para servir...
no sirves para vivir.


No soy el dueño del mundo...
pero si el hijo del dueño.


Entre la linea que divide la realidad de la ilusión...
se encuentra la imaginación

IlusionLand - Piyey

avis_phoenix

  • Miembro activo
  • **
  • Mensajes: 96
  • Nacionalidad: mx
    • Ver Perfil
Re: Lectura De Cadenas De Caracter En Modo Grafico
« Respuesta #7 en: Miércoles 1 de Septiembre de 2004, 03:54 »
0
Hola!!
sabes sé larespuesta de esta pregunta desde hace muchotiempo,pero esperaba que tula resolvieras solo, se siente mejor así, es muy sencillo me extraña que nadie te haya dado una respuesta tan simple, simplemente debes tener un buffer para almacenar lo que recojas del getch(), luego imprimirlo enpantalla(ahi usas el outtextxy y decides laposición de tu texto, teniendo en cuenta que debes aumentar la coordenada x cada vez que escribas uan tecla ,(antes convertirlo en puntero[sprintf]) ahora cuando presiona una tecla o cuado llegue a un numero de caracteres que tu decidas comparar el valor del buffer con el valor que tu quieres si es necesario guardar el valor del buffer en una variable, ahora eso no es todo, a nadie se le ha ocurrido que pasaría si se equivoca y quiere borrar, el getch() manda borrar como un simbolo raro, tendrías que ver que tecla te mando y ver si no es uan tecla especial(ctype.h), y bueno no neceitas y un for sería más conveniente un while pues cuando intectuas con lapersona que maneja el programa nunca es un manejo lineal, siempre es variado y sin un orden especifico, bueno, suerte, te peudo mandar codigo si quieres contactame:tlatuani_mx@hotmail.com
"La envidia en los hombres muestra cuán desdichados se sienten, y su constante atención a lo que hacen o dejan de hacer los demás, muestran cuánto se aburren." "Las religiones, como las luciérnagas, necesitan de oscuridad para brillar." "Los hombres vulgares han inventado la vida en sociedad porque les es más fácil soportar a los demás que soportarse a sí mismos." "Sólo es libre aquello que existe por las necesidades de su propia naturaleza y cuyos actos se originan exclusivamente dentro de sí." "La experiencia nos ha demostrado que a la persona no le resulta nada más difícil de dominar que su lengua." "La madurez del hombre es haber vuelto a encontrar la seriedad con la que jugaba cuando era niño." "Los monos son demasiado buenos para que el hombre pueda descender de ellos." "El hombre, en su orgullo, creó a Dios a su imagen y semejanza" "Lo que hacemos no es nunca comprendido, y siempre es acogido sólo por los elogios o por la crítica."

piyey

  • Miembro MUY activo
  • ***
  • Mensajes: 101
  • Nacionalidad: ni
    • Ver Perfil
    • Piyeycorp® - La imaginación es el límite
Re: Lectura De Cadenas De Caracter En Modo Grafico
« Respuesta #8 en: Viernes 3 de Septiembre de 2004, 03:36 »
0
:lol: CORRECTO!!! avis_phoenix,  :rolleyes: mas o menos asi es como trabajan las funciones que diseñé, parece que no las han probado por que no tiene muchas descargas :blink: , prueben a descargarlas y si tienen alguna pregunta de como se usan solo comentenla y yo se las responderé lo mas pronto posible... :P


Seeyou!!!

Piyey
Si no vives para servir...
no sirves para vivir.


No soy el dueño del mundo...
pero si el hijo del dueño.


Entre la linea que divide la realidad de la ilusión...
se encuentra la imaginación

IlusionLand - Piyey