簡體   English   中英

解碼駕照PDF417或磁條

[英]decode drivers license PDF417 or magnetic strip

我能夠從條形碼中提取代碼,但是當從俄亥俄州駕駛執照中讀取磁性腳本時,我似乎無法獲得像 PDF417 那樣在執照號前面加上兩個字母的代碼。

Private Sub ScannDLButton_Click(sender As Object, e As EventArgs) Handles ScanDLButton.Click
        Try


            Dim strInputBox As String = InputBox("Please Swipe/Scan Customer's Driver's License", "Driver's License")

            Dim strLastName As String
            Dim strFirstName As String
            Dim strMiddleName As String
            Dim strDOB As String
            Dim strStreet As String
            Dim strCity As String
            Dim strState As String
            Dim strZIP As String
            Dim strDL As String
            Dim strCountry As String

這確定它是否是磁條

            If strInputBox.Contains("%") Then

                Dim CaretPresent As Boolean = False
                Dim EqualPresent As Boolean = False
                CaretPresent = strInputBox.Contains("^")
                EqualPresent = strInputBox.Contains("=")

                If CaretPresent Then 'track one
                    Dim CardData As String() = strInputBox.Split("^"c)
                    strState = CardData(0).Substring(1, 2)
                    strCity = CardData(0).Substring(3, CardData(0).Length - 3)
                    Dim strname As String() = CardData(1).Split("$"c)
                    strLastName = strname(0)
                    strFirstName = strname(1)
                    strMiddleName = strname(2)
                    strStreet = CardData(2)
                    Dim strzipcode As String() = CardData(3).Split("+"c)
                    strZIP = strzipcode(1).Substring(2, 5)

                End If

                If EqualPresent Then ' track two
                    Dim CardData As String() = strInputBox.Split("="c)
                    strDOB = CardData(1).Substring(6, 6)

                End If

這確定用戶是否掃描了許可證背面的條形碼

            ElseIf strInputBox.Contains("ANSI") Then

                Dim separatingStrings As String() = {"ANSI", "DBA", "DCS", "DAC", "DAD", "DBD", "DBB", "DBC", "DAY", "DAU", "DAG", "DAI", "DAJ", "DAK", "DAQ", "DCF", "DCG", "DDE", "DDF", "DDG", "DAZ", "DCI", "DCJ", "DCU", "DCE", "DDA", "DDB", "DAW", "DDK", "ZOZ", "ZOE"}
                Dim text As String = strInputBox
                Dim words As String() = text.Split(separatingStrings, System.StringSplitOptions.RemoveEmptyEntries)
                Dim i As Integer = 0

                For Each word In words
                    _log.Info("Looking at code: " & separatingStrings(i).ToString)
                    _log.Info("Parsing field: " & word.ToString.Trim)
                    strLastName = IIf(separatingStrings(i) = "DCS", word.ToString.Trim, strLastName)
                    strFirstName = IIf(separatingStrings(i) = "DAC", word.ToString.Trim, strFirstName)
                    strMiddleName = IIf(separatingStrings(i) = "DAD", word.ToString.Trim, strMiddleName)
                    strDOB = IIf(separatingStrings(i) = "DBB", word.ToString.Trim, strDOB)
                    strStreet = IIf(separatingStrings(i) = "DAG", word.ToString.Trim, strStreet)
                    strCity = IIf(separatingStrings(i) = "DAI", word.ToString.Trim, strCity)
                    strState = IIf(separatingStrings(i) = "DAJ", word.ToString.Trim, strState)
                    strZIP = IIf(separatingStrings(i) = "DAK", word.ToString.Trim, strZIP)
                    strDL = IIf(separatingStrings(i) = "DAQ", word.ToString.Trim, strDL)
                    strCountry = IIf(separatingStrings(i) = "DCG", word.ToString.Trim, strCountry)
                    i += 1
                Next

            Else
                MessageBox.Show("Incorrect format, contact us with this type of ID", "Scan Driver's License", MessageBoxButtons.OK, MessageBoxIcon.Stop)
                Return
            End If

文本行中是否有代碼加密代碼。

我知道這是一個老問題,但也許有人仍然會發現這個答案有幫助。

看起來,至少在俄亥俄州,兩個字母的許可證號碼前綴由字母表的序數表示(A=01 .. Z=26)。

所以在樣本數據“;6360231911247481”中,“636023”是俄亥俄州的ANSI Id前綴,“19”是第一個字母(“S”)的序數,“11”是第二個字母(“K”)的序數,“247481”是剩余的數字部分。

因此,對於此示例,完整的 DL 編號為“SK247481”。

請注意,這是根據樣本數據確定的,而不是記錄在案的來源,因此 ymmv。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM