VB代码用于读取复杂的条形码并分离其AI。这段代码正确处理复杂条形码01984000000726283102002046102577855921221505并正确通过ElseIf:
ElseIf (ScannedBarcode.Length >= 44 AndAlso (ScannedBarcode.Substring(0, 2) = "01" _
And ScannedBarcode.Substring(16, 4) = "3102" _
And ScannedBarcode.Substring(26, 2) = "10" _
And ScannedBarcode.Substring(36, 2) = "21")) Then
oProduct.ProductCode = ScannedBarcode.Substring(2, 14)
oProduct.ExpiryDate = "" 'Expiry date
oProduct.Qty = ScannedBarcode.Substring(20, 6) / 100
然而,当使用相同的方法来处理具有不同排列的AI的不同复杂条形码时,子串似乎返回小于指定长度的条码,例如, 310而不是3102。
ElseIf ScannedBarcode.Length >= 44 AndAlso (ScannedBarcode.Substring(0, 2) = "01" _
And ScannedBarcode.Substring(16, 2) = "10" _
And ScannedBarcode.Substring(26, 2) = "17" _
And ScannedBarcode.Substring(35, 4) = "3102") Then
oProduct.ProductCode = ScannedBarcode.Substring(2, 14)
oProduct.ExpiryDate = ScannedBarcode.Substring(27, 6) 'Expiry date
oProduct.Qty = ScannedBarcode.Substring(38, 6) / 100
任何建议都将不胜感激,谢谢
答案 0 :(得分:0)
首先,您的第二个条形码只有43个字符,而不是44个。也许正因为如此,您的SubString
之一并不匹配:
ScannedBarcode.Substring(26, 2)
它返回71
而不是您期望的17
。