Obliczenie cyfry kontrolnej Modulo 43

Opis obliczania cyfr kontrolnych



InfoActiveBarcode automatycznie oblicza cyfry kontrolne dla większości kodów.
Dokumentacja ta ma jedynie charakter informacyjny.

Modulo 43

Obliczanie sumy kontrolnej zgodnie z Modulo 43:
Cyfra kontrolna zgodna z Modulo 43 jest używana np. przez Code 39.

Po pierwsze, numery referencyjne są przypisywane do wszystkich znaków kodu. Te numery referencyjne są dodawane do sumy. Suma ta jest dzielona przez 43. Pozostała część tego podziału odpowiada sumie kontrolnej, która jest następnie zastępowana znakiem odpowiadającym numerowi referencyjnemu.

Przykład obliczeń:

Cyfry: 1 5 9 A Z
Numery referencyjne: 1 +5 +9 +10 +35
Suma numerów referencyjnych: 60
Obliczanie sumy kontrolnej: 60 / 43 = 1 Reszta 17
Cyfra kontrolna "H" (Numer referencyjny 17)

Numery referencyjne:
00 0
01 1
02 2
03 3
04 4
05 5
06 6
07 7
08 8
09 9
10 A
11 B
12 C
13 D
14 E
15 F
16 G
17 H
18 I
19 J
20 K
21 L
22 M
23 N
24 O
25 P
26 Q
27 R
28 S
29 T
30 U
31 V
32 W
33 X
34 Y
35 Z
36 -
37 .
38 Space
39 $
40 /
41 +
42 %


Przykład kodu do obliczania sumy kontrolnej zgodnie z Modulo 43

Kod Excel VBA do obliczania sumy kontrolnej zgodnie z Modulo 43, np. dla kodu HIBC:
' calc modulo 43
‘ returns the input string plus the check character
' demo for www.activebarcode.com
Public Function MOD43CheckChar(sValue As String) As String
    Const charSet As String = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%"
    Dim i As Integer
    Dim T As Long
    For i = 1 To Len(Trim(UCase(sValue)))
        T = InStr(charSet, Mid(sValue, i, 1)) - 1 + T
    Next i
    MOD43CheckChar = sValue & Mid$(charSet, (T Mod 43 + 1), 1)
End Function