• Domingo 22 de Diciembre de 2024, 07:42

Autor Tema:  S.o.s Leer Caracteres De La Pantalla  (Leído 4675 veces)

Norax

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
S.o.s Leer Caracteres De La Pantalla
« en: Lunes 21 de Marzo de 2005, 19:31 »
0
Necesito ayuda porque he buscado en foros y he mirado en librerias y no encuetro una función que pueda leer, posicionandote en una parte de la pantalla (gotoxy()), el caracter que esta impreso en la pantalla en ese lugar. Si alguno os habeis enfrentado a ello o sabeis mas que yo, por favor, os pido que me ayudeis.

Se que la pantalla se trata como un fichero de solo escritura (stdout) pero me preguntaba si se podica leer de el.
 
Adios y gracias de todas formas.  :comp:  :whistling:

alguien

  • Miembro activo
  • **
  • Mensajes: 26
    • Ver Perfil
Re: S.o.s Leer Caracteres De La Pantalla
« Respuesta #1 en: Martes 22 de Marzo de 2005, 05:20 »
0
de que se trata el problema
  talvez te pueda ayudar

Diodo

  • Moderador
  • ******
  • Mensajes: 658
    • Ver Perfil
    • http://www.solocodigo.com
Re: S.o.s Leer Caracteres De La Pantalla
« Respuesta #2 en: Martes 22 de Marzo de 2005, 10:33 »
0
hola

¿El stdout se puede leer?

creo que no  :(  pero no estoy seguro asi que sigue buscando y preguntando

saludos :hola:

Norax

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: S.o.s Leer Caracteres De La Pantalla
« Respuesta #3 en: Martes 22 de Marzo de 2005, 13:50 »
0
Lo quiero para realizar una libreria que contenga las siguietes funciones:

menuv(cordenadas x,coordenadas y, alto, ancho);
Dibuja una ventana para relizar un menu, esta ya esta hecha;

otra que se llame lineavert(cordenadas x,coordenadas y,tamaño)
Quisiera que recorriera la pantalla desde el punto x,y hasta tamaño para así comprobar si hay una linea horizontal ya dibujada que cambie esta linea por una cruz o si es el final por una esquina...

otra que se llame lineahori(cordenadas x,coordenadas y,tamaño)
Semejante a la anterior pero en horizontal.

*Tambien me podrias decir que modificador puedo usar con scanf o una funcion de entrada para que esta no esceda de ciertos caracteres tanto al coger el valor como cuando el usuario lo mete por pantalla. :huh:

Lo necesito para un proyecto que tengo que realizar en breve, asi quiero dibujar las ventanas de los menus y dentro de las ventanas los distintos apartados.
Perdonar por las molestias y gracias otra vez.  :)

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: S.o.s Leer Caracteres De La Pantalla
« Respuesta #4 en: Martes 22 de Marzo de 2005, 14:24 »
0
Se puede accediendo a las interrupciones o en su defecto a la API de windows...

todo lo que necesitas esta en el libro

Lenguaje C para Expertos
de Helbert Schild
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

maikmr

  • Miembro MUY activo
  • ***
  • Mensajes: 112
    • Ver Perfil
Re: S.o.s Leer Caracteres De La Pantalla
« Respuesta #5 en: Martes 22 de Marzo de 2005, 15:12 »
0
Otra posible opcion es que si sabes enzamblar podria manejar estas coass desde ahi, creando links a enzamblador.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: S.o.s Leer Caracteres De La Pantalla
« Respuesta #6 en: Martes 22 de Marzo de 2005, 15:19 »
0
El problema con ensamblador es que no lo puedes usar en versiones de windows de 32 bit...
por varias razones:
1- los niveles de proteccion del sistema
2- no se usan las interruopciones directamente
...
...

Pero si cuentas con compiladores como el DJGPP puedes usar la INt86 que te deja acceder  a las interrupciones del modo virtual del 8086 (o sea en programas de consola)  incluso te permite usar asm en algunas ocaciones.

Mi recomendacion por pura funcionalidad a futuro es que uses la Win32API
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

bob esponja

  • Miembro MUY activo
  • ***
  • Mensajes: 411
    • Ver Perfil
    • http://marianoguerra.blogspot.com
Re: S.o.s Leer Caracteres De La Pantalla
« Respuesta #7 en: Martes 22 de Marzo de 2005, 23:31 »
0
si lo que hablas es leer que caracter hay en una posicion de la pantalla e modo
texto, la solucion es asi:

puntero a B800:0000 si es modo real

puntero a B8000si es protegido

B800:(y*80+x)*2 te da la coordenada del caracter que queres averiguar y el del lado
te da los atributos, osea el color el fondo etc ( no se si es al reves osea el primero es los atributos )

el 80 es la cantidad de caracteres por linea del modo texto 03h que es el que va por defecto en dos o en la consola de linux si no solo tenes quecambiar ese valor

si esmodo real usa far char * o MK_FP para crear el puntero

bob esponja

  • Miembro MUY activo
  • ***
  • Mensajes: 411
    • Ver Perfil
    • http://marianoguerra.blogspot.com
Re: S.o.s Leer Caracteres De La Pantalla
« Respuesta #8 en: Martes 22 de Marzo de 2005, 23:34 »
0
agregando...

yo habia hecho algo parecido que desapareciocuando formatee e disco que
dibujaba una ventana en la pantalla sin necesidad de sabr que habia en ella

sobre la lectura de una cierta cantidad de caracteresun while con getchar o
la amistosa interrupcion 16h funcion 0h

espero que sirva

natyXD

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re:S.o.s Leer Caracteres De La Pantalla
« Respuesta #9 en: Martes 4 de Junio de 2013, 05:16 »
0
POR FAVOR SI SABEN DE ALGUNAS LINEAS DE CODIGO PARA LEER UN CARACTER IMPRESO EN PANTALLA EN LA   POSICION gotoxy  , LES ESTARIA ETERNAMENTE AGRADECIDA XD ,SE QUE HAY CODIGO EN ENSMBLADOR Q HACE ESO , ASI QUE DEBE HABER  EN ALTO NIVEL