Kontrollsiffra beräkning av Modulo 43

Beskrivning av beräkning av kontrollsiffror



InfoActiveBarcode beräknar kontrollsiffror för de flesta koder automatiskt.
Denna dokumentation är endast avsedd för fullständighetens skull.

Modulo 43

Beräkning av en kontrollsumma enligt Modulo 43:
En kontrollsiffra enligt Modulo 43 används t.ex. av Code 39.

Först tilldelas referensnummer till alla tecken i koden. Dessa referensnummer läggs till en summa. Detta belopp delas med 43. Resten av denna del motsvarar kontrollsumman, som sedan ersätts av det tecken som motsvarar referensnumret.

Ett beräknings exempel:

Siffror: 1 5 9 A Z
Referensnummer: 1 +5 +9 +10 +35
Summan av referensnummer: 60
Beräkna kontrollsumma: 60 / 43 = 1 Återstod 17
Kontrollsiffra "H" (Referensnummer 17)

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


Kodexempel för beräkning av kontrollsumman enligt Modulo 43

Excel VBA-kod för beräkning av kontrollsumman enligt Modulo 43, t.ex. för HIBC-koden:
' 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