Hàm kiểm tra mã Container.

  • Thread starter Thread starter ST-Lu!
  • Ngày gửi Ngày gửi
Liên hệ QC

ST-Lu!

Love Wingchun
Tham gia
19/8/08
Bài viết
730
Được thích
546
Nghề nghiệp
Xích lô một thời
Em có sưu tầm một Function sau nhưng chưa hiểu
công dụng của nó là gì?
----------
Các Huynh "ngó" qua và chỉ giúp nhé

PHP:
Type StructName
    Char As String
    Num As Integer
End Type

Global MyArray(26) As StructName    'Save value and character table

Function Check(s1, s2) As String
    s1 = UCase(Trim(s1))        'Trim bank of st string
    s2 = Trim(s2)
    'Init array
    Index = 1
    Char = 65            '65 is equal character "A"
    For i = 10 To 38
        If ((i Mod 11)) <> 0 Then
            MyArray(Index).Char = Chr(Char)
            Char = Char + 1
            MyArray(Index).Num = i
            Index = Index + 1
        End If
    Next i
    If (Len(s1) >= 5) Then
        Check = "Error prefix: More than 4 characters!"
        Exit Function
    End If

    Dim Total As Long
    Total = 0
    k = 1
    For i = 1 To 4
        c$ = Right(Left(s1, i), 1)
        For j = 1 To 26
            If (StrComp(c$, MyArray(j).Char)) = 0 Then
                Total = Total + MyArray(j).Num * k
                k = k * 2
                Exit For
            End If
        Next j
    Next i

    If (s1 = "APLS") Then
        Check = "APL Cont. and only 6 numbers"
        Exit Function
    End If

    If (s1 = "APLU") Then
        Check = "APL Cont. and only 6 numbers"
        Exit Function
    End If

    If ((Len(s2) >= 8)) Then
        Check = "Error: More than 7 numbers"
        Exit Function
    End If
    If ((Len(s1) = 0)) Then
        Check = ""
        Exit Function
    End If
        If ((Len(s2) <= 6)) Then
        Check = "Error: Less than 7 numbers"
       Exit Function
    End If

    For i = 1 To 6
        c$ = Right(Left(s2, i), 1)
        Total = Total + Val(c$) * k
        k = k * 2
    Next i

    If (s1 = "HLCU") Then
        Total = Total - 13
    End If

    While Total >= 11
        Total = Total - 11
    Wend

    If (Total = 10) Then
        Total = 0
    End If

    If (Total = Val(Right(s2, 1))) Then    'if True
        Check = "True!"
    Else
        Check = "Error!Please recheck!"
    End If
End Function
 
Về việc đặt tên em nghĩ ngoài cách đặt tên như các anh, chị nêu trên, em nghĩ mình nên đưa thêm GPE vào. Ví dụ
ContCheckGPE
Nghe hơi dài một chút nhưng nó cũng là kỷ niệm, xuất xứ cho một ai đó khi dùng hàm này.
Tránh trường hợp người dùng chỉ biết dùng mà không biết xuất sứ thì buồn lắm

Các anh chị cho ý kiến
 
Upvote 0
Hoàn toàn nhất trí!

ContCheckGPE
Nghe hơi dài một chút nhưng nó cũng là kỷ niệm, xuất xứ cho một ai đó khi dùng hàm này.
Tránh trường hợp người dùng chỉ biết dùng mà không biết xuất sứ thì buồn lắm
Các anh chị cho ý kiến

Chúng ta hoàn toàn nhất trí với ST-Lu! về tên hàm! Xin cảm ơn lớn!

Cái chàng Hỗ này chưa phát hiện những sơ sót trong hàm: Đó là dư rất nhiều câu hay dòng lệnh Exit Function không cần thiết.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom