• Domingo 28 de Abril de 2024, 18:37

Mostrar Mensajes

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
C/C++ / leer teclas especiales (flechas, ESC, Fn) en Code::Blocks
« 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
C/C++ / Como Instalar Las Sdl En Code::blocks Para Xp
« 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
Dudas informáticas / Varios Archivos Pps En Una Sola Ventana
« 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
C/C++ / Paleta De Colores En Pcx
« 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
C/C++ / Truncar Un Archivo
« 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
ASM (Ensamblador) / Convertir Una Cadena A Numero
« 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
ASM (Ensamblador) / Convertir Cadena A Numero
« 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
ASM (Ensamblador) / Funcion Clrscr() De C En Tasm
« 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]