Berekening met controlecijfers van Modulo 43

Beschrijving van het berekenen van controlecijfers



InfoActiveBarcode berekent automatisch controlegetallen voor de meeste codes.
Deze documentatie is alleen bedoeld voor de volledigheid.

Modulo 43

Berekening van een controlesom volgens Modulo 43:
Een controlegetal volgens Modulo 43 wordt bijvoorbeeld gebruikt door de Code 39.

Eerst worden referentienummers toegekend aan alle tekens van de code. Deze referentienummers worden opgeteld tot een totaal. Deze som wordt gedeeld door 43. De rest van deze deling komt overeen met de controlesom, die vervolgens wordt vervangen door het teken dat overeenkomt met het referentienummer.

Een rekenvoorbeeld:

Cijfers: 1 5 9 A Z
Referentienummers: 1 +5 +9 +10 +35
Som van referentienummers: 60
Controlesom berekenen: 60 / 43 = 1 Rest 17
Cijfer controleren "H" (Referentienummer 17)

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


Codevoorbeeld voor het berekenen van de controlesom volgens Modulo 43

Excel VBA-code voor het berekenen van de controlesom volgens Modulo 43, bijvoorbeeld voor de HIBC-code:
' 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