Pastebin launched a little side project called HostCabi.net, check it out ;-)Don't like ads? PRO users don't see any ads ;-)
Guest

ASCII Art Text Generator

By: antiquekid3 on May 5th, 2013  |  syntax: C++  |  size: 7.30 KB  |  hits: 250  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. // Generates ASCII art text for printing on punched paper tape
  2.  
  3. #include <iostream>
  4. #include <fstream>
  5. #include <string>
  6. #include <stdio.h>
  7. using namespace std;
  8.  
  9. ifstream infile;
  10.  
  11. string buffer;
  12. int size;
  13. char c;
  14.  
  15. int lookup(char c)
  16. {
  17.         switch (c)
  18.         {
  19.                 case 'a':
  20.                         buffer = "\x60\x94\x94\x94\xf8";
  21.                         size = 5;
  22.                         break;
  23.                 case 'b':
  24.                         buffer = "\xff\x88\x88\x88\x70";
  25.                         size = 5;
  26.                         break;
  27.                 case 'c':
  28.                         buffer = "\x70\x88\x88\x88\x90";
  29.                         size = 5;
  30.                         break;
  31.                 case 'd':
  32.                         buffer = "\x70\x88\x88\x88\xff";
  33.                         size = 5;
  34.                         break;
  35.                 case 'e':
  36.                         buffer = "\x78\x94\x94\x94\x98";
  37.                         size = 5;
  38.                         break;
  39.                 case 'f':
  40.                         buffer = "\x10\xfe\x11";
  41.                         size = 3;
  42.                         break;
  43.                 case 'g':
  44.                         buffer = "\x98\xa4\xa4\x78";
  45.                         size = 4;
  46.                         break;
  47.                 case 'h':
  48.                         buffer = "\xff\x08\x08\x08\xf0";
  49.                         size = 5;
  50.                         break;
  51.                 case 'i':
  52.                         buffer = "\x88\xfa\x80";
  53.                         size = 3;
  54.                         break;
  55.                 case 'j':
  56.                         buffer = "\x40\x80\x84\x7d";
  57.                         size = 4;
  58.                         break;
  59.                 case 'k':
  60.                         buffer = "\xff\x20\x50\x88";
  61.                         size = 4;
  62.                         break;
  63.                 case 'l':
  64.                         buffer = "\x81\xff\x80";
  65.                         size = 3;
  66.                         break;
  67.                 case 'm':
  68.                         buffer = "\xf8\x08\xf8\x08\xf0";
  69.                         size = 5;
  70.                         break;
  71.                 case 'n':
  72.                         buffer = "\xf8\x08\x08\x08\xf0";
  73.                         size = 5;
  74.                         break;
  75.                 case 'o':
  76.                         buffer = "\x70\x88\x88\x88\x70";
  77.                         size = 5;
  78.                         break;
  79.                 case 'p':
  80.                         buffer = "\xf8\x24\x24\x18";
  81.                         size = 4;
  82.                         break;
  83.                 case 'q':
  84.                         buffer = "\x18\x24\x24\xf8";
  85.                         size = 4;
  86.                         break;
  87.                 case 'r':
  88.                         buffer = "\x08\xf0\x08\x10";
  89.                         size = 4;
  90.                         break;
  91.                 case 's':
  92.                         buffer = "\x90\xa8\xa8\xa8\x48";
  93.                         size = 5;
  94.                         break;
  95.                 case 't':
  96.                         buffer = "\x08\x7e\x88\x48";
  97.                         size = 4;
  98.                         break;
  99.                 case 'u':
  100.                         buffer = "\x78\x80\x80\x80\xf8";
  101.                         size = 5;
  102.                         break;
  103.                 case 'v':
  104.                         buffer = "\x18\x60\x80\x60\x18";
  105.                         size = 5;
  106.                         break;
  107.                 case 'w':
  108.                         buffer = "\x78\x80\x78\x80\x78";
  109.                         size = 5;
  110.                         break;
  111.                 case 'x':
  112.                         buffer = "\x88\x50\x20\x50\x88";
  113.                         size = 5;
  114.                         break;
  115.                 case 'y':
  116.                         buffer = "\x98\xa0\xa0\x78";
  117.                         size = 4;
  118.                         break;
  119.                 case 'z':
  120.                         buffer = "\x88\xc8\xa8\x98\x88";
  121.                         size = 5;
  122.                         break;
  123.                 case 'A':
  124.                         buffer = "\xfe\x09\x09\x09\xfe";
  125.                         size = 5;
  126.                         break;
  127.                 case 'B':
  128.                         buffer = "\xff\x89\x89\x89\x76";
  129.                         size = 5;
  130.                         break;
  131.                 case 'C':
  132.                         buffer = "\x73\x81\x81\x81";
  133.                         size = 4;
  134.                         break;
  135.                 case 'D':
  136.                         buffer = "\xff\x81\x81\x42\x3c";
  137.                         size = 5;
  138.                         break;
  139.                 case 'E':
  140.                         buffer = "\xff\x89\x89\x89\x81";
  141.                         size = 5;
  142.                         break;
  143.                 case 'F':
  144.                         buffer = "\xff\x09\x09\x09\x01";
  145.                         size = 5;
  146.                         break;
  147.                 case 'G':
  148.                         buffer = "\x7e\x81\x81\x89\x7a";
  149.                         size = 5;
  150.                         break;
  151.                 case 'H':
  152.                         buffer = "\xff\x08\x08\x08\xff";
  153.                         size = 5;
  154.                         break;
  155.                 case 'I':
  156.                         buffer = "\x81\xff\x81";
  157.                         size = 3;
  158.                         break;
  159.                 case 'J':
  160.                         buffer = "\x60\x80\x80\x7f";
  161.                         size = 4;
  162.                         break;
  163.                 case 'K':
  164.                         buffer = "\xff\x08\x14\xe3";
  165.                         size = 4;
  166.                         break;
  167.                 case 'L':
  168.                         buffer = "\xff\x80\x80\x80";
  169.                         size = 4;
  170.                         break;
  171.                 case 'M':
  172.                         buffer = "\xff\x02\x04\x18\x04\x02\xff";
  173.                         size = 7;
  174.                         break;
  175.                 case 'N':
  176.                         buffer = "\xff\x06\x18\x60\xff";
  177.                         size = 5;
  178.                         break;
  179.                 case 'O':
  180.                         buffer = "\x7e\x81\x81\x81\x7e";
  181.                         size = 5;
  182.                         break;
  183.                 case 'P':
  184.                         buffer = "\xff\x09\x09\x09\x06";
  185.                         size = 5;
  186.                         break;
  187.                 case 'Q':
  188.                         buffer = "\x3e\x41\x61\x41\xbe";
  189.                         size = 5;
  190.                         break;
  191.                 case 'R':
  192.                         buffer = "\xff\x09\x19\x29\xc6";
  193.                         size = 5;
  194.                         break;
  195.                 case 'S':
  196.                         buffer = "\x46\x89\x89\x89\x72";
  197.                         size = 5;
  198.                         break;
  199.                 case 'T':
  200.                         buffer = "\x01\x01\xff\x01\x01";
  201.                         size = 5;
  202.                         break;
  203.                 case 'U':
  204.                         buffer = "\x3f\x80\x80\x80\x3f";
  205.                         size = 5;
  206.                         break;
  207.                 case 'V':
  208.                         buffer = "\x3f\x40\x80\x40\x3f";
  209.                         size = 5;
  210.                         break;
  211.                 case 'W':
  212.                         buffer = "\x7f\x80\x70\x80\x7f";
  213.                         size = 5;
  214.                         break;
  215.                 case 'X':
  216.                         buffer = "\xe3\x14\x08\x14\xe3";
  217.                         size = 5;
  218.                         break;
  219.                 case 'Y':
  220.                         buffer = "\x07\x08\xf0\x08\x07";
  221.                         size = 5;
  222.                         break;
  223.                 case 'Z':
  224.                         buffer = "\xc1\xa1\x91\x89\x87";
  225.                         size = 5;
  226.                         break;
  227.                 case '0':
  228.                         buffer = "\x7e\xa1\x99\x85\x7e";
  229.                         size = 5;
  230.                         break;
  231.                 case '1':
  232.                         buffer = "\x81\xff\x80";
  233.                         size = 3;
  234.                         break;
  235.                 case '2':
  236.                         buffer = "\xc2\xa1\x91\x91\x8e";
  237.                         size = 5;
  238.                         break;
  239.                 case '3':
  240.                         buffer = "\x42\x81\x91\x91\x6e";
  241.                         size = 5;
  242.                         break;
  243.                 case '4':
  244.                         buffer = "\x1f\x10\x10\xff\x10";
  245.                         size = 5;
  246.                         break;
  247.                 case '(':
  248.                         buffer = "\x3c\x42\x81";
  249.                         size = 3;
  250.                         break;
  251.                 case ')':
  252.                         buffer = "\x81\x42\x3c";
  253.                         size = 3;
  254.                         break;
  255.                 case '!':
  256.                         buffer = "\xbf";
  257.                         size = 1;
  258.                         break;
  259.                 case '?':
  260.                         buffer = "\x02\x01\xb1\x09\x06";
  261.                         size = 5;
  262.                         break;
  263.                 case '$':
  264.                         buffer = "\x44\x4a\xff\x4a\x32";
  265.                         size = 5;
  266.                         break;
  267.                 case '#':
  268.                         buffer = "\x24\xff\x24\xff\x24";
  269.                         size = 5;
  270.                         break;
  271.                 case '*':
  272.                         buffer = "\x08\x2a\x1c\x2a\x08";
  273.                         size = 5;
  274.                         break;
  275.                 case '.':
  276.                         buffer = "\xc0\xc0";
  277.                         size = 2;
  278.                         break;
  279.                 case '&':
  280.                         buffer = "\x76\x89\x96\x60\x90";
  281.                         size = 5;
  282.                         break;
  283.                 case '\"':
  284.                         buffer = "\x07\x00\x07";
  285.                         size = 3;
  286.                         break;
  287.                 case '\'':
  288.                         buffer = "\x07";
  289.                         size = 1;
  290.                         break;
  291.                 case ',':
  292.                         buffer = "\xb0\x80";
  293.                         size = 2;
  294.                         break;
  295.                 case '/':
  296.                         buffer = "\xc0\x30\x0c\x03";
  297.                         size = 4;
  298.                         break;
  299.                 case '\\':
  300.                         buffer = "\x03\x0c\x30\xc0";
  301.                         size = 4;
  302.                         break;
  303.                 case ':':
  304.                         buffer = "\xc3\xc3";
  305.                         size = 2;
  306.                         break;
  307.                 case ';':
  308.                         buffer = "\xcb\xc7";
  309.                         size = 2;
  310.                         break;
  311.                 case '[':
  312.                         buffer = "\xff\x81\x81";
  313.                         size = 3;
  314.                         break;
  315.                 case ']':
  316.                         buffer = "\x81\x81\xff";
  317.                         size = 3;
  318.                         break;
  319.                 case '%':
  320.                         buffer = "\x46\x26\x10\xc8\xc4";
  321.                         size = 5;
  322.                         break;
  323.                 case '^':
  324.                         buffer = "\x04\x02\x01\x02\x04";
  325.                         size = 5;
  326.                         break;
  327.                 case '_':
  328.                         buffer = "\x80\x80\x80\x80\x80";
  329.                         size = 5;
  330.                         break;
  331.                 case '=':
  332.                         buffer = "\x28\x28\x28";
  333.                         size = 3;
  334.                         break;
  335.                 case '+':
  336.                         buffer = "\x10\x38\x10";
  337.                         size = 3;
  338.                         break;
  339.                 case '-':
  340.                         buffer = "\x10\x10\x10";
  341.                         size = 3;
  342.                         break;
  343.                 case '{':
  344.                         buffer = "\x08\x76\x81\x81";
  345.                         size = 4;
  346.                         break;
  347.                 case '}':
  348.                         buffer = "\x81\x81\x76\x08";
  349.                         size = 4;
  350.                         break;
  351.                 case '<':
  352.                         buffer = "\x20\x50\x88";
  353.                         size = 3;
  354.                         break;
  355.                 case '>':
  356.                         buffer = "\x88\x50\x20";
  357.                         size = 3;
  358.                         break;
  359.                 case '@':
  360.                         buffer = "\x7e\x81\x99\xa5\xbe\x80";
  361.                         size = 6;
  362.                         break;
  363.                 case '|':
  364.                         buffer = "\xf7";
  365.                         size = 1;
  366.                         break;
  367.                 case '\n':
  368.                 case ' ':
  369.                         buffer = "\x00\x00\x00\x00\x00";
  370.                         size = 5;
  371.                         break;
  372.                 default:
  373.                         return -1;
  374.         }
  375.         return 0;
  376. }
  377.                        
  378.                                
  379.                                
  380. int main(int argc, char** argv)
  381. {
  382.         if (argc > 1)
  383.         {
  384.                 infile.open(argv[1]);
  385.                 if (!infile.is_open())
  386.                 {
  387.                         cerr << "Error opening file" << endl;
  388.                         return -1;
  389.                 }
  390.                 else
  391.                 {
  392.                         while (infile.good())
  393.                         {
  394.                                 c = infile.get();
  395.                                 if (c >= 0 && c <= 255)
  396.                                 {
  397.                                    
  398.                                         int error = lookup(c);
  399.                                         char hexchar[32];
  400.                                         if (error < 0)
  401.                                         {
  402.                                                 cerr << "Character not defined: ";
  403.                                                 sprintf(hexchar, "0x%X\n",c);
  404.                                                 cerr << hexchar;
  405.                                         }
  406.                                         else
  407.                                         {
  408.                                                 buffer += "\0";
  409.                                                 size++;
  410.                                                 cout.write(buffer.data(), size);
  411.                                                 //cerr << size << endl;
  412.                                         }
  413.                                 }
  414.                         }
  415. //                      buffer = "\0";
  416. //                      cout << buffer;
  417.                         infile.close();
  418.                 }
  419.                 return 0;
  420.         }
  421.         else
  422.         {
  423.                 cerr << "Too few arguments" << endl;
  424.                 return -1;
  425.         }
  426.         return 0;
  427. }