8の倍数は何とか表示出来たので、倍数以外の半角文字に挑戦してみます
#!@GAWK@ -f # # * public domain * # BEGIN { printf("/******************************************************************************\n"); printf(" Shinonome Font Table. (12*6) BDF to C Source \n"); printf("******************************************************************************/\n"); printf("\n"); printf("const unsigned char FONT_DATA[10000] = {\n"); } END { printf("\n};\n"); } { hhhh = substr($0,1,4); switch(hhhh) { case "....": xxxx = "0"; break; case "...@": xxxx = "1"; break; case "..@.": xxxx = "2"; break; case "..@@": xxxx = "3"; break; case ".@..": xxxx = "4"; break; case ".@.@": xxxx = "5"; break; case ".@@.": xxxx = "6"; break; case ".@@@": xxxx = "7"; break; case "@...": xxxx = "8"; break; case "@..@": xxxx = "9"; break; case "@.@.": xxxx = "A"; break; case "@.@@": xxxx = "B"; break; case "@@..": xxxx = "C"; break; case "@@.@": xxxx = "D"; break; case "@@@.": xxxx = "E"; break; case "@@@@": xxxx = "F"; break; case "ENDC": printf ("\n"); break; default: next; break; } hh = substr($0,5,2); switch(hh) { case "..": xxxx = xxxx "0"; break; case ".@": xxxx = xxxx "4"; break; case "@.": xxxx = xxxx "8"; break; case "@@": xxxx = xxxx "C"; break; default: next; break; } printf("0x%s,", xxxx); }
コメントをかく