algorytm.org

Implementacja w Java

Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Extended Code 39 - Implementacja w Java
Ocena użytkownikóww: *****  / 2
SłabyŚwietny
Nadesłany przez Tomasz Lubiński, 17 września 2006 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

BarCode.java:
/**
 * @author Tomasz Lubinski
 * (c)2006 algorytm.org
 *
 *  Code 39 Bar Code
 */
public class BarCode {
	
	  private static final char code39signs[] = {
		        '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
		        'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
		        'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
		        'U', 'V', 'W', 'X', 'Y', 'Z', '-', '.', ' ', '$',
		        '/', '+', '%'};

	  private static final char code39bars[][] = {
		        {'N', 'N', 'N', 'W', 'W', 'N', 'W', 'N', 'N'},
		        {'W', 'N', 'N', 'W', 'N', 'N', 'N', 'N', 'W'},
		        {'N', 'N', 'W', 'W', 'N', 'N', 'N', 'N', 'W'},
		        {'W', 'N', 'W', 'W', 'N', 'N', 'N', 'N', 'N'},
		        {'N', 'N', 'N', 'W', 'W', 'N', 'N', 'N', 'W'},
		        {'W', 'N', 'N', 'W', 'W', 'N', 'N', 'N', 'N'},
		        {'N', 'N', 'W', 'W', 'W', 'N', 'N', 'N', 'N'},
		        {'N', 'N', 'N', 'W', 'N', 'N', 'W', 'N', 'W'},
		        {'W', 'N', 'N', 'W', 'N', 'N', 'W', 'N', 'N'},
		        {'N', 'N', 'W', 'W', 'N', 'N', 'W', 'N', 'N'},
		        {'W', 'N', 'N', 'N', 'N', 'W', 'N', 'N', 'W'},
		        {'N', 'N', 'W', 'N', 'N', 'W', 'N', 'N', 'W'},
		        {'W', 'N', 'W', 'N', 'N', 'W', 'N', 'N', 'N'},
		        {'N', 'N', 'N', 'N', 'W', 'W', 'N', 'N', 'W'},
		        {'W', 'N', 'N', 'N', 'W', 'W', 'N', 'N', 'N'},
		        {'N', 'N', 'W', 'N', 'W', 'W', 'N', 'N', 'N'},
		        {'N', 'N', 'N', 'N', 'N', 'W', 'W', 'N', 'W'},
		        {'W', 'N', 'N', 'N', 'N', 'W', 'W', 'N', 'N'},
		        {'N', 'N', 'W', 'N', 'N', 'W', 'W', 'N', 'N'},
		        {'N', 'N', 'N', 'N', 'W', 'W', 'W', 'N', 'N'},
		        {'W', 'N', 'N', 'N', 'N', 'N', 'N', 'W', 'W'},
		        {'N', 'N', 'W', 'N', 'N', 'N', 'N', 'W', 'W'},
		        {'W', 'N', 'W', 'N', 'N', 'N', 'N', 'W', 'N'},
		        {'N', 'N', 'N', 'N', 'W', 'N', 'N', 'W', 'W'},
		        {'W', 'N', 'N', 'N', 'W', 'N', 'N', 'W', 'N'},
		        {'N', 'N', 'W', 'N', 'W', 'N', 'N', 'W', 'N'},
		        {'N', 'N', 'N', 'N', 'N', 'N', 'W', 'W', 'W'},
		        {'W', 'N', 'N', 'N', 'N', 'N', 'W', 'W', 'N'},
		        {'N', 'N', 'W', 'N', 'N', 'N', 'W', 'W', 'N'},
		        {'N', 'N', 'N', 'N', 'W', 'N', 'W', 'W', 'N'},
		        {'W', 'W', 'N', 'N', 'N', 'N', 'N', 'N', 'W'},
		        {'N', 'W', 'W', 'N', 'N', 'N', 'N', 'N', 'W'},
		        {'W', 'W', 'W', 'N', 'N', 'N', 'N', 'N', 'N'},
		        {'N', 'W', 'N', 'N', 'W', 'N', 'N', 'N', 'W'},
		        {'W', 'W', 'N', 'N', 'W', 'N', 'N', 'N', 'N'},
		        {'N', 'W', 'W', 'N', 'W', 'N', 'N', 'N', 'N'},
		        {'N', 'W', 'N', 'N', 'N', 'N', 'W', 'N', 'W'},
		        {'W', 'W', 'N', 'N', 'N', 'N', 'W', 'N', 'N'},
		        {'N', 'W', 'W', 'N', 'N', 'N', 'W', 'N', 'N'},
		        {'N', 'W', 'N', 'W', 'N', 'W', 'N', 'N', 'N'},
		        {'N', 'W', 'N', 'W', 'N', 'N', 'N', 'W', 'N'},
		        {'N', 'W', 'N', 'N', 'N', 'W', 'N', 'W', 'N'},
		        {'N', 'N', 'N', 'W', 'N', 'W', 'N', 'W', 'N'}
	  };

	  private static final String extendedCode39Replace[] = {
	        "%U", "$A", "$B", "$C", "$D", "$E", "$F", "$G", "$H", "$I", "$J", "$K", "$L", "$M", "$N",
	        "$O", "$P", "$Q", "$R", "$S", "$T", "$U", "$V", "$W", "$X", "$Y", "$Z", "%A", "%B", "%C",
	        "%D", "%E", " ", "/A", "/B", "/C", "/D", "/E", "/F", "/G", "/H", "/I", "/J", "/K", "/L",
	        "-", ".", "/O", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "/Z", "%F", "%G", "%H",
	        "%I", "%J", "%V", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O",
	        "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "%K", "%L", "%M", "%N", "%O", "%W",
	        "+A", "+B", "+C", "+D", "+E", "+F", "+G", "+H", "+I", "+J", "+K", "+L", "+M", "+N", "+O",
	        "+P", "+Q", "+R", "+S", "+T", "+U", "+V", "+W", "+X", "+Y", "+Z", "%P", "%Q", "%R", "%S", "%T"		  
	  };

	  private static final char start_stop[] = {
		        'N', 'W', 'N', 'N', 'W', 'N', 'W', 'N', 'N'
	  };

	  public boolean check(String txt) {
	      for (int i=0; i<txt.length(); i++) {
              if (checkLetter(txt.charAt(i)) == false)
              		return false;
          }
		  return true;
	  }

	  private boolean checkLetter(char ch) {
	        for (int i=0; i<code39signs.length; i++) {
                if (code39signs[i] == ch)
                	return true;
	        }
	        return false;
	  }
	  
	  public char[] getBars(char ch) {
	        for (int i=0; i<code39signs.length; i++) {
                if (code39signs[i] == ch)
                	return code39bars[i];
	        }		  
		  return null;
	  }
	  
	  public char[] getStartStopBars() {
		  return start_stop;
	  }
	  
	  // converts to code 39 set of characters
	  public String convert(String txt)
	  {
	          String result = "";

	          for (int i=0; i<txt.length(); i++)
	          {
	                  if ((txt.charAt(i) >= 0) && (txt.charAt(i) <= 127))
	                          result += extendedCode39Replace[txt.charAt(i)];
	                  else
	                          result += txt.substring(i, i+1);
	          }

	          return result;
	  }
}
Dodaj komentarz