Wpisany przez Tomasz Lubiński,
17 września 2006 22:56
Zwykły kod kreskowy Code 39 jest w stanie przechowywać bardzo ograniczony zestaw znaków. Więcej, bo 128 znaków ASCII pozwala przechowywać rozszerzony Code 39 (ang. Extended Code 39). Dodatkowe symbole uzyskuje się używając kombinacji dwóch znaków ze zwykłego kodu Code 39 do zakodowania jednego znaku Extended Code 39. Tabela poniżej pokazuje znaki i ich "zamienniki", które pozwalają zakodować cały zbiór ASCII 128. Wiele znaków z Code 39 zachowuje swoje oryginalne kodowanie (spacja, liczby, wielkie litery, niektóre znaki), ale niektóre (takie jak: %, $, + /) zostały zmienione.
Zakodujmy następujące wyrażenie: 2+2=4 (w standardowym Code 39 nie byłoby to możliwe dlatego, że brakowałoby nam znaku "=").
A więc patrzymy w tabelkę dla "2" nie zmieniamy kodowania czyli wynik wynosi na razie
2
Znak "+" zmieniamy na /K czyli wynik w tej chwili wynosi:
2/K
Teraz znowu "2"
2/K2
Znak "=" zamieniamy na %H
2/K2%H
I ostatni znak "4" pozostaje bez zmian, czyli ostateczny wynik to:
2/K2%H4
Po takiej zamianie (teraz już wszystkie znaki należą do zbioru Code 39) używamy tablicy kodowania Code 39 i otrzymujemy ostateczny wynik w formie graficznej:
znak | zamiennik | znak | zamiennik |
NUL | %U | @ | %V |
SOH | $A | A | A |
STX | $B | B | B |
ETX | $C | C | C |
EOT | $D | D | D |
ENQ | $E | E | E |
ACK | $F | F | F |
BEL | $G | G | G |
BS | $H | H | H |
HT | $I | I | I |
LF | $J | J | J |
VT | $K | K | K |
FF | $L | L | L |
CR | $M | M | M |
SO | $N | N | N |
SI | $O | O | O |
DLE | $P | P | P |
DC1 | $Q | Q | Q |
DC2 | $R | R | R |
DC3 | $S | S | S |
DC4 | $T | T | T |
NAK | $U | U | U |
SYN | $V | V | V |
ETB | $W | W | W |
CAN | $X | X | X |
EM | $Y | Y | Y |
SUB | $Z | Z | Z |
ESC | %A | [ | %K |
FS | %B | \ | %L |
GS | %C | ] | %M |
RS | %D | ^ | %N |
US | %E | _ | %O |
SPACJA | SPACJA | ` | %W |
! | /A | a | +A |
" | /B | b | +B |
# | /C | c | +C |
$ | /D | d | +D |
% | /E | e | +E |
& | /F | f | +F |
' | /G | g | +G |
( | /H | h | +H |
) | /I | i | +I |
* | /J | j | +J |
+ | /K | k | +K |
, | /L | l | +L |
- | /M lepiej użyć - | m | +M |
. | /N lepiej użyć . | n | +N |
/ | /O | o | +O |
0 | /P lepiej użyć 0 | p | +P |
1 | /Q lepiej użyć 1 | q | +Q |
2 | /R lepiej użyć 2 | r | +R |
3 | /S lepiej użyć 3 | s | +S |
4 | /T lepiej użyć 4 | t | +T |
5 | /U lepiej użyć 5 | u | +U |
6 | /V lepiej użyć 6 | v | +V |
7 | /W lepiej użyć 7 | w | +W |
8 | /X lepiej użyć 8 | x | +X |
9 | /Y lepiej użyć 9 | y | +Y |
: | /Z | z | +Z |
; | %F | { | %P |
< | %G | | | %Q |
= | %H | } | %R |
> | %I | ~ | %S |
? | %J | DEL | %T ale również %X %Y oraz %Z dekodowane są jako DEL |
Przykład:
Zakodujmy następujące wyrażenie: 2+2=4 (w standardowym Code 39 nie byłoby to możliwe dlatego, że brakowałoby nam znaku "=").
A więc patrzymy w tabelkę dla "2" nie zmieniamy kodowania czyli wynik wynosi na razie
2
Znak "+" zmieniamy na /K czyli wynik w tej chwili wynosi:
2/K
Teraz znowu "2"
2/K2
Znak "=" zamieniamy na %H
2/K2%H
I ostatni znak "4" pozostaje bez zmian, czyli ostateczny wynik to:
2/K2%H4
Po takiej zamianie (teraz już wszystkie znaki należą do zbioru Code 39) używamy tablicy kodowania Code 39 i otrzymujemy ostateczny wynik w formie graficznej:
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 | ***** / 3 |
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:34