algorytm.org

Code 39



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?

Code 39
Ocena użytkowników:***** / 2
SłabyŚwietny 
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...
ZnakKodowanieZnakKodowanie
0NNNWWNWNNMWNWNNNNWN
1WNNWNNNNWNNNNNWNNWW
2NNWWNNNNWOWNNNWNNWN
3WNWWNNNNNPNNWNWNNWN
4NNNWWNNNWQNNNNNNWWW
5WNNWWNNNNRWNNNNNWWN
6NNWWWNNNNSNNWNNNWWN
7NNNWNNWNWTNNNNWNWWN
8WNNWNNWNNUWWNNNNNNW
9NNWWNNWNNVNWWNNNNNW
AWNNNNWNNWWWWWNNNNNN
BNNWNNWNNWXNWNNWNNNW
CWNWNNWNNNYWWNNWNNNN
DNNNNWWNNWZNWWNWNNNN
EWNNNWWNNN-NWNNNNWNW
FNNWNWWNNN.WWNNNNWNN
GNNNNNWWNWSPACJANWWNNNWNN
HWNNNNWWNN$NWNWNWNNN
INNWNNWWNN/NWNWNNNWN
JNNNNWWWNN+NWNNNWNWN
KWNNNNNNWW%NNNWNWNWN
LNNWNNNNWW*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 - "*"
Znak gwiazdki "*" zarazerowany jest jako znacznik końca i początku zakodowanego ciągu i nie może występować nigdzie indziej.
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:
Code 39


Przykład w JavaScript:
Code 39

Implementacje
AutorJęzyk
programowania
KomentarzOtwórzPobierzOcena
Tomasz LubińskiC#Microsoft Visual Studio 2010
.cs
.cs
***** / 0
Tomasz LubińskiC/C++Borland Builder 6
.cpp
.cpp
***** / 1
Tomasz LubińskiDelphi/PascalBorland Delphi 5
.pas
.pas
***** / 2
Tomasz LubińskiJava
.java
.java
***** / 2
Tomasz LubińskiJavaScriptFirefox 3.0+, Safari 3.0+, Chrome 3.0+, Opera 9.5+, IE 9.0+
.js
.js
***** / 0
 
Dodaj własną implementację tego algorytmu
  • Zaloguj się na stronie
Plik:
Język
programowania:
Komentarz:
  By móc dodać implementacje zaloguj się na stronie

Poprawiony: 29 sierpnia 2012 18:29
Dodaj komentarz