Wpisany przez Tomasz Lubiński,
14 września 2006 18:55
Code 39 (Code 3 of 9) jest alfanumerycznym kodem kreskowym. Został on zaprojektowany by przechowywać 26 wielkie litery, 10 cyfr i 7 znaków specjalnych. Szerszą gamę znaków może przechowywać rozszerzony Code 39 (ang. Extended Code 39). Dlugość kodowanego ciągu jest dowolna.
Każdy znak kodowany jest przez 5 czarnych kresek (ang. bar) i 4 odstępy pomiędzy nimi (ang. space). W sumie daje nam to 9 elementów. Każdy taki element może być szeroki (ang. wide) bądź wąski (ang. narrow), przy czym dla każdego znaku 3 z 9 elementów są szerokie a pozostałe wąskie - stąd nazwa kodowania Code 3 of 9.
Tabela kodowania znaków: (N - oznacza wąski, W - oznacza szeroki), pierwszy znak oznacza czarną kreskę, drugi wolną przestrzeń, trzeci kolejną kreskę, czwarty kolejną wolną przestrzeń, itd...
Element szeroki ma rozmiar będący wielokrotnością szerokości elementu wąskiego. Wielokrotność ta przyjmuje wartości od 2 do 3 jeżeli element wąski jest większy niż 0,508 milimetra w przeciwnym wypadku wielokrotność ta powinna znaleźć się w zakresie od 2 do 2,2. Pomiędzy kolejnymi kodowanymi znakami zostawia się wolną przestrzeń, w praktyce przyjmuje się, że jest ona szerokości elementu wąskiego.
Code 39 ma możliwość przechowywania również sumy kontrolnej - mówimy wówczas o Code 39 mod 43.
Zakodujmy więc napis ALGORYTM.ORG
Najpierw znak początku - "*" NWNNWNWNN
następnie "A" WNNNNWNNW
"L" NNWNNNNWW
"G" NNNNNWWNW
"O" WNNNWNNWN
"R" WNNNNNWWN
"Y" WWNNWNNNN
"T" NNNNWNWWN
"M" WNWNNNNWN
"." WWNNNNWNN
"O" WNNNWNNWN
"R" WNNNNNWWN
"G" NNNNNWWNW
i na końcu - "*" NWNNWNWNN
czyli całość wygląda następująco: NWNNWNWNN WNNNNWNNW NNWNNNNWW NNNNNWWNW WNNNWNNWN WNNNNNWWN WWNNWNNNN NNNNWNWWN WNWNNNNWN WWNNNNWNN WNNNWNNWN WNNNNNWWN NNNNNWWNW NWNNWNWNN
co w zapisie graficznym daje nam:
Każdy znak kodowany jest przez 5 czarnych kresek (ang. bar) i 4 odstępy pomiędzy nimi (ang. space). W sumie daje nam to 9 elementów. Każdy taki element może być szeroki (ang. wide) bądź wąski (ang. narrow), przy czym dla każdego znaku 3 z 9 elementów są szerokie a pozostałe wąskie - stąd nazwa kodowania Code 3 of 9.
Tabela kodowania znaków: (N - oznacza wąski, W - oznacza szeroki), pierwszy znak oznacza czarną kreskę, drugi wolną przestrzeń, trzeci kolejną kreskę, czwarty kolejną wolną przestrzeń, itd...
Znak | Kodowanie | Znak | Kodowanie |
0 | NNNWWNWNN | M | WNWNNNNWN |
1 | WNNWNNNNW | N | NNNNWNNWW |
2 | NNWWNNNNW | O | WNNNWNNWN |
3 | WNWWNNNNN | P | NNWNWNNWN |
4 | NNNWWNNNW | Q | NNNNNNWWW |
5 | WNNWWNNNN | R | WNNNNNWWN |
6 | NNWWWNNNN | S | NNWNNNWWN |
7 | NNNWNNWNW | T | NNNNWNWWN |
8 | WNNWNNWNN | U | WWNNNNNNW |
9 | NNWWNNWNN | V | NWWNNNNNW |
A | WNNNNWNNW | W | WWWNNNNNN |
B | NNWNNWNNW | X | NWNNWNNNW |
C | WNWNNWNNN | Y | WWNNWNNNN |
D | NNNNWWNNW | Z | NWWNWNNNN |
E | WNNNWWNNN | - | NWNNNNWNW |
F | NNWNWWNNN | . | WWNNNNWNN |
G | NNNNNWWNW | SPACJA | NWWNNNWNN |
H | WNNNNWWNN | $ | NWNWNWNNN |
I | NNWNNWWNN | / | NWNWNNNWN |
J | NNNNWWWNN | + | NWNNNWNWN |
K | WNNNNNNWW | % | NNNWNWNWN |
L | NNWNNNNWW | * | NWNNWNWNN |
Element szeroki ma rozmiar będący wielokrotnością szerokości elementu wąskiego. Wielokrotność ta przyjmuje wartości od 2 do 3 jeżeli element wąski jest większy niż 0,508 milimetra w przeciwnym wypadku wielokrotność ta powinna znaleźć się w zakresie od 2 do 2,2. Pomiędzy kolejnymi kodowanymi znakami zostawia się wolną przestrzeń, w praktyce przyjmuje się, że jest ona szerokości elementu wąskiego.
- Kodowany ciąg ma następującą budowę:
- znak początku - "*"
- kodowany ciąg
- znak końca - "*"
Code 39 ma możliwość przechowywania również sumy kontrolnej - mówimy wówczas o Code 39 mod 43.
Przykład:
Zakodujmy więc napis ALGORYTM.ORG
Najpierw znak początku - "*" NWNNWNWNN
następnie "A" WNNNNWNNW
"L" NNWNNNNWW
"G" NNNNNWWNW
"O" WNNNWNNWN
"R" WNNNNNWWN
"Y" WWNNWNNNN
"T" NNNNWNWWN
"M" WNWNNNNWN
"." WWNNNNWNN
"O" WNNNWNNWN
"R" WNNNNNWWN
"G" NNNNNWWNW
i na końcu - "*" NWNNWNWNN
czyli całość wygląda następująco: NWNNWNWNN WNNNNWNNW NNWNNNNWW NNNNNWWNW WNNNWNNWN WNNNNNWWN WWNNWNNNN NNNNWNWWN WNWNNNNWN WWNNNNWNN WNNNWNNWN WNNNNNWWN NNNNNWWNW NWNNWNWNN
co w zapisie graficznym daje nam:
Przykład w JavaScript:
Implementacje
Autor | Język programowania | Komentarz | Otwórz | Pobierz | Ocena |
Tomasz Lubiński | C# | Microsoft Visual Studio 2010 | .cs | .cs | ***** / 0 |
Tomasz Lubiński | C/C++ | Borland Builder 6 | .cpp | .cpp | ***** / 1 |
Tomasz Lubiński | Delphi/Pascal | Borland Delphi 5 | .pas | .pas | ***** / 2 |
Tomasz Lubiński | Java | .java | .java | ***** / 2 | |
Tomasz Lubiński | JavaScript | Firefox 3.0+, Safari 3.0+, Chrome 3.0+, Opera 9.5+, IE 9.0+ | .js | .js | ***** / 0 |
Poprawiony: 29 sierpnia 2012 18:29