Tarkistusnumeron laskeminen Modulo 43

Tarkistusnumeroiden laskemisen kuvaus



InfoActiveBarcode laskee tarkistusmerkit useimmille koodeille automaattisesti.
Tämä dokumentaatio on tarkoitettu vain täydellisyyden vuoksi.

Modulo 43

Modulo-menetelmän mukainen tarkistussumman laskeminen 43:
Modulo 43:n mukainen tarkistusnumero käytetään esimerkiksi Code 39:ssä.

Ensinnäkin, viitenumerot annetaan kaikille koodin merkeille. Nämä viitenumerot lisätään kokonaissummaan. Tämä summa jaetaan 43:lla. Loput tästä osasta vastaa tarkistussummaa, joka korvataan viitenumeroa vastaavalla merkillä.

Laskelmaesimerkki:

Numerot: 1 5 9 A Z
Viitenumerot: 1 +5 +9 +10 +35
Viitenumeroiden summa: 60
Laske tarkistussumma: 60 / 43 = 1 Jäännös 17
Tarkistusnumero "H" (Viitenumero 17)

Viitenumerot:
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 %


Koodiesimerkki tarkistussumman laskemiseksi Modulo 43:n mukaan

Excel VBA -koodi tarkistussumman laskemiseksi Modulo 43:n mukaan, esim. HIBC-koodille:
' 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