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:
El problema lo tengo con los primeros dos pasos, donde no se bien por donde empezar./* 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", "..+@#..$$......%", "..&*..$$$$......", ".....$$$$$$.....", "....$$$$$$$$....", "...$$$$$$$$$$...", "..$$$$$$$$$$$$..", ".$$$$$$$$$$$$$$.", "$$$$$$$$$$$$$$$$"};
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
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/io.h> #include <string.h> #define base 0x378 /* printer port base address */ int main() { FILE *fp1; char config[100], nombre[25]="test.xpm", color[100]; char *c; int cont, colores; if (fp1 == NULL) { } for (cont = 0 ; cont < 3 ; cont += 1 ) { } colores = config[6]; for (cont = 0 ; cont < 9 ; cont += 1 ) { } return EXIT_SUCCESS; }
Bueno, espero que alguien pueda iluminar un poco el camino, mientras seguire investigando...