Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Leer archivo XPM plano

Estas en el tema de Leer archivo XPM plano en el foro de C/C++ en Foros del Web. Hola, este es mi primer mensaje y acudo al foro dado que se me quemaron los papeles (y varias neuronas xD) Estoy tratando de hacer ...
  #1 (permalink)  
Antiguo 25/01/2011, 11:50
 
Fecha de Ingreso: enero-2011
Mensajes: 3
Antigüedad: 13 años, 3 meses
Puntos: 1
Leer archivo XPM plano

Hola, este es mi primer mensaje y acudo al foro dado que se me quemaron los papeles (y varias neuronas xD)

Estoy tratando de hacer programa en C que lea un archivo XPM (texto plano) y envie parte del contenido por el puerto paralelo.

El problema es con C, el programa en si es bastante simple. Basicamente tengo que hacer 3 cosas:

1) Ver la cantidad de colores que tiene el archivo (normalmente 8) marcado abajo en rojo

2) Asignar los colores al caracter correspondiente (marcado en verde) reemplazando de paso "FF" por 1 y "00" por 0

3) Enviar por el puerto paralelo

Código:
/* XPM */
static char * test_xpm[] = {
"16 8 8 1",
".	c #FFFFFF",
"+	c #FF0000",
"@	c #0000FF",
"#	c #FF00FF",
"$	c #00FF00",
"%	c #000000",
"&	c #00FFFF",
"*	c #FFFF00",
"..+@#..$$......%",
"..&*..$$$$......",
".....$$$$$$.....",
"....$$$$$$$$....",
"...$$$$$$$$$$...",
"..$$$$$$$$$$$$..",
".$$$$$$$$$$$$$$.",
"$$$$$$$$$$$$$$$$"};
El problema lo tengo con los primeros dos pasos, donde no se bien por donde empezar.
Se me ocurrio leer el archivo como texto plano (mas abajo lo conseguido), pero no logro avanzar.
Tambien note que el archivo XPM esta en C, y todo el contenido esta en un array, pero no se como usarlo. Si pudiera acceder a este array desde el programa, seria todo mucho mas facil.


Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <unistd.h>
  4. #include <sys/io.h>
  5. #include <string.h>
  6. #define base 0x378           /* printer port base address */
  7.  
  8. int main()
  9.     {
  10.    FILE *fp1;
  11.     char config[100], nombre[25]="test.xpm", color[100];
  12.     char *c;
  13. int cont, colores;
  14.  
  15.     fp1 = fopen(nombre, "r");
  16.     if (fp1 == NULL)
  17.     {
  18.         printf("Error al abrir el archivo \n");
  19.         exit (EXIT_FAILURE);
  20.     }
  21.  
  22.     for (cont = 0 ; cont < 3 ; cont += 1 )
  23.     {
  24.         c = fgets(config, 50, fp1);   /* Obtiene la linea de configuracion del archivo */
  25.    }
  26.         printf("%s", config);          /* La despliega en pantalla */
  27.    printf( "config [6]=%c\n", config[6] );
  28.     colores = config[6];
  29.     printf("Cantidad de colores: %d", colores);
  30.     for (cont = 0 ; cont < 9 ; cont += 1 )
  31.     {
  32.         c = fgets(color, 50, fp1);   /* Obtiene la linea de color del archivo */
  33.         printf("%s", color);          /* La despliega en pantalla */
  34.    }
  35.  
  36.     fclose(fp1);
  37.     return EXIT_SUCCESS;
  38.     }

Bueno, espero que alguien pueda iluminar un poco el camino, mientras seguire investigando...

Última edición por JaM0N; 25/01/2011 a las 11:55 Razón: Olvide el codigo

Etiquetas: plano
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:26.