NTM Solutions

Thứ Hai, 9 tháng 9, 2019

Kiểm tra ISO số CONTAINER

Quay về mục lục VBA Macro

http://bit.ly/checkcontainer

Quy tắc chuẩn ISO của số CONTAINER

Ví dụ số Container : TGHU1234567

 01 số container gồm 02 phần:
  • Phần chữ: có 04 ký tự (chữ cái thứ 04 thường là chữ U)
  • Phần số: gồm 07 chữ số nguyên dương (trong đó số cuối cùng là check digit - số dùng để kiểm tra)
Ta sẽ dựa vào 10 ký tự đầu của số Container(TGHU123456) để tính ra số check digit và so sánh với số cuối cùng (số 7 trong ví dụ)
02 số này trùng nhau -> số Container này hợp lệ ISO

Quy tắc tìm số check digit như sau:

Ta có bảng tra giá trị tương ứng với các chữ:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
10
12
13
14
15
16
17
18
19
20
21
23
24
25
26
27
28
29
30
31
32
34
35
36
37
38

Lần lượt từ trái qua phải lấy số tương ứng với các chữ *2^n (bắt đầu từ 0->9)

Kí tự Số tương ứng Lũy thừa 2n Chi tiết Tách số
( a ) ( b ) ( c ) ( b ) x ( c ) ( e )
T 31 0 B5 x 20 31
G 17 1 B6 x 21 34
H 18 2 B7 x 22 72
U 32 3 B8 x 23 256
1 1 4 B9 x 24 16
2 2 5 B10 x 25 64
3 3 6 B11 x 26 192
4 4 7 B12 x 27 512
5 5 8 B13 x 28 1280
6 6 9 B14 x 29 3072
TỔNG 5529

Lấy tổng / 11 => số dư chính là check digit: số 7

Trùng với số cuối cùng của số container: TGHU1234567 => Số cont này hợp lệ

Các bạn xem thêm về chuẩn này tại trang:
https://www.bic-code.org/ (trang chính thức về chuẩn số CONTAINER)

Function KIEMTRA(Text As String)
'Copyright 2015 @ NGUYEN TRAN MINH
'All right reserved
'Mobi: (084) 0906 73 8682 (NGUYEN TRAN MINH)
'Function to check ISO standard of CONTAINER No

Dim MANG_SO, TONG As Integer
Dim MANG_CHU, S, EndChar As Byte 's la ky tu
Dim SoDung, EndNo, ChieuDai, i, j, k As Integer

ChieuDai = Len(Text)
Select Case ChieuDai
    Case 0
        KIEMTRA = "RONG!"
        Exit Function
    Case 1 To 10
        KIEMTRA = "THIÊ'U!"
        Exit Function
    Case Is > 11
        KIEMTRA = "TH" + ChrW(431) + "`A"
        Exit Function
End Select

MANG_CHU = Array("A", "B", "C", "D", "E", "F", "G", _
                    "H", "I", "J", "K", "L", "M", "N", _
                    "O", "P", "Q", "R", "S", "T", "U", _
                    "V", "W", "X", "Y", "Z", _
                    "0", "1", "2", "3", "4", "5", "6", "7", "8", "9")
MANG_SO = Array(10, 12, 13, 14, 15, 16, 17, _
                18, 19, 20, 21, 23, 24, 25, _
                26, 27, 28, 29, 30, 31, 32, _
                34, 35, 36, 37, 38, _
                0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
KIEMTRA = "SAI!"
TONG = 0
EndChar = Mid(Text, 11, 1)
k = 0
For i = 1 To 35
    If EndChar = MANG_CHU(i) Then EndNo = MANG_SO(i)
Next i

For i = 1 To 10
    S = UCase(Mid(Text, i, 1))
    j = 1
    For j = 0 To 35
        If S = MANG_CHU(j) Then
            TONG = TONG + MANG_SO(j) * (2 ^ k)
            k = k + 1
        End If
    Next j

Next i
If (TONG Mod 11) = 10 Then
    SoDung = 0
Else
    SoDung = TONG Mod 11
End If
If SoDung = EndNo Then KIEMTRA = "ÐÚNG"

End Function

Tải xuống Phiên bản EXCEL
MD5-SHA256:
5FA3BF9B3B225E17738E0E973D9D7A3C8DD38222D204CB45B659DB80DF93952D


Tài xuống phần mềm kiểm tra ISO số CONTAINER (file add-in)
MD5-SHA256:
158E1C870C0FBE3D7F2EAC19D33ACA8B40EBC10A8DC983787AECED2EF3B8F858


Tải xuống phần mềm kiểm tra ISO số CONTAINER (for Android)
Tải xuống phần mềm kiểm tra ISO số CONTAINER (javascript)
Còn nữa...

Các bạn hãy bấm nút LIKE và SHARE để mình có động lực viết thêm nhiều nhiều bài viết nữa.

Tác giả: #drM

Không có nhận xét nào:

Đăng nhận xét

Facebook Youtube RSS