Wpisany przez Tomasz Lubiński,
21 września 2006 00:15
Zwykły kod kreskowy Code 93 jest w stanie przechowywać bardzo ograniczony zestaw znaków. Więcej, bo 128 znaków ASCII pozwala przechowywać rozszerzony Code 93 (ang. Extended Code 93). Dodatkowe symbole uzyskuje się używając kombinacji dwóch znaków ze zwykłego kodu Code 93 - jednego z czterech dodatkowych znaków sterujących (zaznaczone na czerwono) oraz jednego znaku "normalnego" - do zakodowania jednego znaku Extended Code 93. Tabela poniżej pokazuje znaki i ich "zamienniki", które pozwalają zakodować cały zbiór ASCII 128. Wiele znaków z Code 93 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 93 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 93) używamy sposobu kodowania Code 93 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 dopuszcza się użycia $ | d | (+)D |
% | (/)E dopuszcza się użycia % | e | (+)E |
& | (/)F | f | (+)F |
' | (/)G | g | (+)G |
( | (/)H | h | (+)H |
) | (/)I | i | (+)I |
* | (/)J | j | (+)J |
+ | (/)K dopuszcza się użycia + | k | (+)K |
, | (/)L | l | (+)L |
- | (/)M lepiej użyć - | m | (+)M |
. | (/)N lepiej użyć . | n | (+)N |
/ | (/)O dopuszcza się użycia / | 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 93 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 93) używamy sposobu kodowania Code 93 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 | ***** / 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:37