kristof160584
Gebruiker
- Lid geworden
- 3 okt 2012
- Berichten
- 10
Halo
ik heb een vb barcode gen gemaakt maar als ik deze nu gebruik dan krijg in niet de goede barcode (128)
Hier vind u een voorbeeld van de barcode =Ticketnumer
http://www.belgiumopenfreeroll.com/Barcode/default.aspx?userid=521B3232-692E-4FD4-8660-65F720A00191
ik heb een vb barcode gen gemaakt maar als ik deze nu gebruik dan krijg in niet de goede barcode (128)
Hier vind u een voorbeeld van de barcode =Ticketnumer
http://www.belgiumopenfreeroll.com/Barcode/default.aspx?userid=521B3232-692E-4FD4-8660-65F720A00191
Code:
Imports BarCodeGenerator.TicketBarcodeService
Public Class MainPageViewModel
Inherits BaseViewModel
#Region " CONSTRUCTOR "
Public Sub New()
Dim client As New BarcodeServiceClient
AddHandler client.GetTicketDataCompleted, AddressOf GetTicketDataFinished
client.GetTicketDataAsync(CType(Application.Current, App).UserID)
End Sub
#End Region
#Region " PRIVATE VARIABLES "
Private _characterList As List(Of Character)
#End Region
#Region " PROPERTIES "
Private _currentPlayer As Player
Public Property CurrentPlayer() As Player
Get
Return _currentPlayer
End Get
Set(ByVal value As Player)
_currentPlayer = value
RaisePropertyChanged("CurrentPlayer")
End Set
End Property
#End Region
#Region " PUBLIC METHODS "
Public Event BarcodeGenerated(bars As List(Of BarcodeElement))
#End Region
#Region " PRIVATE METHODS "
Private Sub GetTicketDataFinished(sender As Object, e As GetTicketDataCompletedEventArgs)
If e.Error Is Nothing Then
If e.Result IsNot Nothing AndAlso e.Result.PlayerName <> "" Then
CurrentPlayer = e.Result
GenerateBarcode(CurrentPlayer.TicketNumber)
End If
End If
End Sub
Private Function LoadCharacters() As List(Of Character)
Dim cs As New List(Of Character)
cs.Add(New Character(0, "SP", "11011001100"))
cs.Add(New Character(1, "!", "11001101100"))
cs.Add(New Character(2, """", "11001100110"))
cs.Add(New Character(3, "#", "10010011000"))
cs.Add(New Character(4, "$", "10010001100"))
cs.Add(New Character(5, "%", "10001001100"))
cs.Add(New Character(6, "&", "10011001000"))
cs.Add(New Character(7, "'", "10011000100"))
cs.Add(New Character(8, "(", "10001100100"))
cs.Add(New Character(9, ")", "11001001000"))
cs.Add(New Character(10, "*", "11001000100"))
cs.Add(New Character(11, "+", "11000100100"))
cs.Add(New Character(12, ",", "10110011100"))
cs.Add(New Character(13, "-", "10011011100"))
cs.Add(New Character(14, ".", "10011001110"))
cs.Add(New Character(15, "/", "10111001100"))
cs.Add(New Character(16, "0", "10011101100"))
cs.Add(New Character(17, "1", "10011100110"))
cs.Add(New Character(18, "2", "11001110010"))
cs.Add(New Character(19, "3", "11001011100"))
cs.Add(New Character(20, "4", "11001001110"))
cs.Add(New Character(21, "5", "11011100100"))
cs.Add(New Character(22, "6", "11001110100"))
cs.Add(New Character(23, "7", "11101101110"))
cs.Add(New Character(24, "8", "11101001100"))
cs.Add(New Character(25, "9", "11100101100"))
cs.Add(New Character(26, ":", "11100100110"))
cs.Add(New Character(27, ";", "11101100100"))
cs.Add(New Character(28, "<", "11100110100"))
cs.Add(New Character(29, "=", "11100110010"))
cs.Add(New Character(30, ">", "11011011000"))
cs.Add(New Character(31, "?", "11011000110"))
cs.Add(New Character(32, "@", "11000110110"))
cs.Add(New Character(33, "A", "10100011000"))
cs.Add(New Character(34, "B", "10001011000"))
cs.Add(New Character(35, "C", "10001000110"))
cs.Add(New Character(36, "D", "10110001000"))
cs.Add(New Character(37, "E", "10001101000"))
cs.Add(New Character(38, "F", "10001100010"))
cs.Add(New Character(39, "G", "11010001000"))
cs.Add(New Character(40, "H", "11000101000"))
cs.Add(New Character(41, "I", "11000100010"))
cs.Add(New Character(42, "J", "10110111000"))
cs.Add(New Character(43, "K", "10110001110"))
cs.Add(New Character(44, "L", "10001101110"))
cs.Add(New Character(45, "M", "10111011000"))
cs.Add(New Character(46, "N", "10111000110"))
cs.Add(New Character(47, "O", "10001110110"))
cs.Add(New Character(48, "P", "11101110110"))
cs.Add(New Character(49, "Q", "11010001110"))
cs.Add(New Character(50, "R", "11000101110"))
cs.Add(New Character(51, "S", "11011101000"))
cs.Add(New Character(52, "T", "11011100010"))
cs.Add(New Character(53, "U", "11011101110"))
cs.Add(New Character(54, "V", "11101011000"))
cs.Add(New Character(55, "W", "11101000110"))
cs.Add(New Character(56, "X", "11100010110"))
cs.Add(New Character(57, "Y", "11101101000"))
cs.Add(New Character(58, "Z", "11101100010"))
cs.Add(New Character(59, "[", "11100011010"))
cs.Add(New Character(60, "\", "11101111010"))
cs.Add(New Character(61, "]", "11001000010"))
cs.Add(New Character(62, "^", "11110001010"))
cs.Add(New Character(63, "_", "10100110000"))
cs.Add(New Character(64, "NUL", "10100001100"))
cs.Add(New Character(65, "SOH", "10010110000"))
cs.Add(New Character(66, "STX", "10010000110"))
cs.Add(New Character(67, "ETX", "10000101100"))
cs.Add(New Character(68, "EOT", "10000100110"))
cs.Add(New Character(69, "ENQ", "10110010000"))
cs.Add(New Character(70, "ACK", "10110000100"))
cs.Add(New Character(71, "BEL", "10011010000"))
cs.Add(New Character(72, "BS", "10011000010"))
cs.Add(New Character(73, "HT", "10000110100"))
cs.Add(New Character(74, "LF", "10000110010"))
cs.Add(New Character(75, "VT", "11000010010"))
cs.Add(New Character(76, "FF", "11001010000"))
cs.Add(New Character(77, "CR", "11110111010"))
cs.Add(New Character(78, "SO", "11000010100"))
cs.Add(New Character(79, "SI", "10001111010"))
cs.Add(New Character(80, "DLE", "10100111100"))
cs.Add(New Character(81, "DC1", "10010111100"))
cs.Add(New Character(82, "DC2", "10010011110"))
cs.Add(New Character(83, "DC3", "10111100100"))
cs.Add(New Character(84, "DC4", "10011110100"))
cs.Add(New Character(85, "NAK", "10011110010"))
cs.Add(New Character(86, "SYN", "11110100100"))
cs.Add(New Character(87, "ETB", "11110010100"))
cs.Add(New Character(88, "CAN", "11110010010"))
cs.Add(New Character(89, "EM", "11011011110"))
cs.Add(New Character(90, "SUB", "11011110110"))
cs.Add(New Character(91, "ESC", "11110110110"))
cs.Add(New Character(92, "FS", "10101111000"))
cs.Add(New Character(93, "GS", "10100011110"))
cs.Add(New Character(94, "RS", "10001011110"))
cs.Add(New Character(95, "US", "10111101000"))
cs.Add(New Character(96, "FNC3", "10111100010"))
cs.Add(New Character(97, "FNC2", "11110101000"))
cs.Add(New Character(98, "SHIFT", "11110100010"))
cs.Add(New Character(99, "CODE-C", "10111011110"))
cs.Add(New Character(100, "CODE-B", "10111101110"))
cs.Add(New Character(101, "FNC4", "11101011110"))
cs.Add(New Character(102, "FNC1", "11110101110"))
cs.Add(New Character(103, "START-A", "11010000100"))
cs.Add(New Character(104, "STOP", "1100011101011"))
cs.Add(New Character(105, "START-B", "11010010000"))
Return cs
End Function
Private Function BreakString(ByVal input As String, ByVal size As Integer) As List(Of String)
Dim value As String = ""
Dim returnvalue As New List(Of String)
For i As Integer = 0 To input.Length - 1
value = input.Substring(i, 1)
If value.IsNumeric Then
If Not returnvalue.Contains("CODE-C") Then
returnvalue.Add("CODE-C")
End If
If i > input.Length - size Then
value = input.Substring(i)
Else
value = input.Substring(i, size)
End If
returnvalue.Add(value)
i += 1
Else
returnvalue.Add(value)
End If
Next
Return returnvalue
End Function
Private Function CalculateCheckSum(ByVal input As List(Of String)) As Integer
Dim total As Integer = 103
Dim counter As Integer = 1
'add indices from values
For Each s As String In input
Dim i As Integer = (From c In _characterList Where c.Name = s.ToUpper Select c.Index).FirstOrDefault
If i > 0 Then
total += counter * i
counter += 1
Else
If s.IsNumeric Then
total += counter * CInt(s)
counter += 1
End If
End If
Next
'divide by 103 and return rest of division
Return (total Mod 103) + 1
End Function
Private Function CreateBitString(ByVal input As List(Of String), ByVal checkSum As Integer) As String
Dim r As String = ""
'add default values to list
input.Insert(0, "START-B")
input.Add(checkSum.ToString)
input.Add("STOP")
For Each s As String In input
Dim v As String = (From c In _characterList Where c.Name = s.ToUpper Select c.Encoding).FirstOrDefault
If v = Nothing AndAlso s.IsNumeric <> 0 Then
v = (From c In _characterList Where c.Index = CInt(s) Select c.Encoding).FirstOrDefault
End If
r += v
Next
r += "11"
Return r
End Function
Private Function GenerateBarcodeElements(ByVal bits As String) As List(Of BarcodeElement)
Dim elements As New List(Of BarcodeElement)
Dim bit As String = "1"
Dim length As Integer = 0
For i As Integer = 0 To bits.Length - 1
If bits.Substring(i, 1) = bit Then
length += 1
Else
elements.Add(New BarcodeElement(length, CType(IIf(bit = "1", Colors.Black, Colors.White), Color)))
bit = bits.Substring(i, 1)
length = 1
End If
Next
elements.Add(New BarcodeElement(length, CType(IIf(bit = "1", Colors.Black, Colors.White), Color)))
Return elements
End Function
Private Sub GenerateBarcode(barcode As String)
_characterList = LoadCharacters()
Dim input As List(Of String) = BreakString(barcode, 2)
Dim checkSum As Integer = CalculateCheckSum(input)
Dim bitValues As String = CreateBitString(input, checkSum)
Dim bars As List(Of BarcodeElement) = GenerateBarcodeElements(bitValues)
RaiseEvent BarcodeGenerated(bars)
End Sub
#End Region
End Class
Laatst bewerkt: