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...


