|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Temas - Forly
Páginas: [1]
1
« en: Martes 12 de Agosto de 2008, 17:24 »
Hola a todos:
Me he pasado del Turbo C++ de Borland a Code::Blocks.
En general me las estoy arreglando bien, pero tengo un problema con la lectura de teclas especiales como ESCAPE, las teclas de Función, Inicio, flechas y otras.
En Turbo C++, usaba algo así
//==================================================== int main() { char tecla=0; while(tecla!=27) { tecla=cin.get(); cout << tecla << " - " << (int) tecla; if (!tecla) { // En este caso la tecla es especial // Hago una segunda lectura tecla=cin.get(); cout << " --> " << tecla << " - " << (int) tecla; } cout << endl; } getchar(); return 0; } //====================================================
Pero una codificación de estas características, adaptada a la sintaxis del code::blocls, claro está, no funciona.
¿Alguien puede darme una pista de cómo hacerlo?
Desde ya les agradezco el tiempo que me dedican.
Un abrazo.
2
« en: Lunes 26 de Mayo de 2008, 21:31 »
Hola a todos: Tengo un problemita. Decidí migrar de Dev-C++ a Code::Blocks, y todo anda bien, con excepción de que no puedo instalar las SDL. ¿Alguien me puede explicar cómo hacerlo?
Desde ya muchas gracias por su atención.
3
« en: Jueves 15 de Marzo de 2007, 23:38 »
Hola a todos:
Tengo hecho un trabajo (un libro) en PowerPoint, que consta de varios archivos PPS.
La estructura del libro consta de un PPS indice, dede el que se llama a otros PPS independientes que constituyen los capitulos.
La navegacion dentro del libro se hace por medio de hipervinculos a presentaciones externas, que generan desplazamientos en todos los sentidos (desde el indice a los capitulos, dentro de los mismos capitulos, y de regreso desde los capitulos al indice).
El grupo de presentaciones fue desarrollado hace algunos años en PowerPoint 97, y siempre se ejecutó perfectamente en Windows 98.
Pero, ahora que quiero presentarlo en Windows XP, cada vez que invoco a un capitulo, este se abre en una ventana indpendiente, la que ademas no se cierra, cuando se regresa al indice. Inclusive, si uno invoca varias veces a un mismo capitulo, se abre una nueva instancia por cada una.
¿Alguno de Uds. puede explicarme a que se debe, y como puedo solucionarlo?
Desde ya muchas gracias a todos por atender mi consulta.
4
« en: Lunes 14 de Noviembre de 2005, 18:32 »
Hola a todos: Estoy haciendo un editor en modo 320x200x256 (modo 13h) y he llegado a leer archivos con formato PCX.
El problema es que el formato PCX guarda la paleta de colores, y cuando cargo un archivo de este tipo me cambia la paleta de colores original, cambiándome el aspecto de todo el entorno.
Alguien conoce algún método para independizar el mapa de la paleta?.
A mí se me había ocurrido leer los valores rgb de la paleta leída y guardarlos en un archivo, pero lo que no sé cómo hacer, es poner los rgb directamente en pantalla.
Desde ya, muchas gracias a todos.
5
« en: Sábado 23 de Abril de 2005, 20:17 »
Hola a todos:
Les agradecería si alguien me puede informar cómo puedo hacer para truncar un archivo a partir de un registro determinado.
Yo lo intenté escribendo en esa posición el ASCII 26 (EOF) pero no resultó.
Existe algina manera?...
Uso el Turbo C++ 3.0.
No quiero generar un archivo auxiliar sino trabajar sobre el original.
Desde ya muchas gracias por leer mi consulta.
6
« en: Martes 15 de Febrero de 2005, 11:26 »
Hola a todos:
Primero quiero agradecer a Amilius por haberme dado una pista de como resolver el problema.
Y... Como nobleza obliga..., ahora mando para todos los que puedan necesitarlo, el codigo con la solucion a la que pude llegar gracias a su ayuda.
Aclaro que esta compilado con TASM.
;#################################################### ; ENUNCIADO: Convertir una cadena de 4 caracteres formada por digitos ; a un numero entero. ; ; NOTA: La cadena debe ser ingresada por codigo y no debe ; ser validada. ; ;==================================================== .model SMALL
.stack
.data CadNum db '3245' ; Cadena con digitos. Entero dw 0 ; Numero entero. Factor db 10 ; Factor multiplicador.
.code INICIO: mov AX,@data ; Apuntar al segmento de datos. mov DS,AX
mov SI,offset CadNum ; Apuntar al digito mas ; significativo. CLD ; Establecer el sentido de ; de recorrido de la cadena ; de izquierda a derecha. mov CX,3 ; Poner el contador de pro- ; grama en 4. C1: mov AX,Entero ; Multiplicar el contenido mul Factor ; de Entero por 10. mov Entero,AX ; xor AX,AX ; Limpiar AX lodsb ; Leer el caracter apuntado. sub AL,30h ; Pasar de caracter a numero. add AX,Entero ; Sumar el numero resultante mov Entero,AX ; a Entero. loop C1 ; Ir a leer otro digito.
FIN: mov AH,4Ch int 21h end INICIO end ;====================================================
;#################################################################### ; ENUNCIADO: Convertir una cadena de 4 caracteres formada por digitos ; a un numero entero. ; ; NOTA: La cadena debe ser ingresada por codigo y no debe ; ser validada. ; ;==================================================================== .model SMALL
.stack
.data CadNum db '3245' Entero dw 0 Factor db 10
.code INICIO: mov AX,@data mov DS,AX
mov SI,offset CadNum ; Apuntar al digito mas ; significativo. CLD ; Establecer el sentido de ; de recorrido de la cadena ; de izquierda a derecha. mov CX,3 ; Poner el contador de pro- ; grama en 4. C1: mov AX,Entero ; Multiplicar el contenido mul Factor ; de Entero por 10. mov Entero,AX ; xor AX,AX ; Limpiar AX lodsb ; Leer el caracter apuntado. sub AL,30h ; Pasar de caracter a numero. add AX,Entero ; Sumar el numero resultante mov Entero,AX ; a Entero. loop C1 ; Ir a leer otro digito.
FIN: mov AH,4Ch int 21h end INICIO end ;====================================================
Un abrazo para todos
7
« en: Sábado 12 de Febrero de 2005, 22:18 »
Hola a todos. Soy nuevo en este tipo de programación, y no se cómo hacer para convertir una cadena de caracteres con más de 2 digitos a un número entero.
Por ejemplo:
CadNum db '95' ; Cadena con 2 digitos. Num db 0 ; Numero entero resultado. VPos db 1 ; Valor posicional.
Esto se como hacerlo: 1) tomo el digito menos significativo de la cadena CadNum ('5') 2) lo convierto a número restándole 48 decimal. 3) multiplico el numero resultante por VPos (Valor posicional). 4) Sumo el resultado obtenido al contenido de Num. 5) Multiplico el valor posicional (VPos) por 10 decimal. 6) guardo el resultado en VPos. 7) tomo el digito siguiente y repito las operaciones desde el punto (2)
Esto que sigue no se como hacerlo
CadNum db '1234' Num dd 0 VPos qw 1
(El tema es que no entiendo cómo manejar el número resultante cuando se encuentra en dos registros - DX:AX).
¿Alguno de ustedes podría explicármelo?
Desde ya les quedo muy agradecido por dedicarme su tiempo.
8
« en: Sábado 29 de Enero de 2005, 15:58 »
Hola Amigos: Soy nuevo en el foro y también en la programación en Ensamblador.
Estoy intentando como un simple ejercicio emular la función clrscr() del lenguaje C.
Para ello, he optado por el uso de la interrupción INT 10h con el servicio 06h.
He probado con todas las combinaciones que vinieron a mi mente: cambios de coordenadas de ventana, cambio de fondo, etc.
Lo cierto es que, si bien en algunos casos se ha borrado la pantalla como dicen los manualesy tutoriales, en el mejor de ellos, me ha quedado el cursor en la última línea de la pantalla, y no en la primera como lo hace la función verdadera.
También he intentado reubicar el cursor después de borrar la pantalla, pero tampoco resultó.
Adujunto el archivo clrscr.asm para que lo examinen, y me sería de gran aprendizaje, si alguno de ustedes me puediera decir en qué me estoy equivocando.
De todos modos, conozcan o no la respuesta, desde ya les estoy agradecido por el tiempo que han gastado en atenderme.
Páginas: [1]
|
|
|