Barcode gen

Status
Niet open voor verdere reacties.

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
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:
Hoi,

Misschien is het gewoon makkelijker om een (online) api te gebruiken?
https://www.mashape.com/cingusoft/barcode-generator-2-0
http://help.codereadr.com/help/kb/developer-api/api-barcode-generator

Ik had er nog een, maar die moet ik even opzoeken. Ik zal hem er nog bij zetten als een api een oplossing zou kunnen zijn...

MartinJM

[edit]
De andere die ik had zat iets anders in elkaar. Bij die was het een php code die je dan zelf moest hosten...


Eventueel zou je dit kunnen gebruiken om er zelf een te maken: http://en.wikipedia.org/wiki/Code_39. Reken dan alleen wel op enkele maanden (tot jaren, hangt ervan af hoeveel tijd en ervaring je hebt) werk.
[/edit]
 
Laatst bewerkt:
Het hangt ervan af waar de fout zit... Als de fout in de dll zit en jij hebt die niet zelf gemaakt, dan heeft het geen zin om nog te proberen om deze code werkend te krijgen.

Het komt erop neer dat je zelf moet gaan kijken waar het fout gaat (mbv breakpoints), en dan kijken wat er precies fout gaat. Dan komen wij om de hoek kijken om je te helpen met het oplossen van de fout.

Als je zelf de fout niet kan vinden, dan kunnen we je daar ook mee helpen, maar dan zal je iets meer informatie moeten geven zodat wij zelf de code kunnen testen. Hoofdzakelijk is dat eigenlijk de dll...


MartinJM
 
hela


ik heb de volledig code , kan ik deze ergens plaatsen

ik zit totaal vast .

mvvg
 
Je kan het gewoon hier plaatsen, of in een zip zetten en hier uploaden :)

Als je het nog snel even doet, kan ik nu nog even voor je kijken. Maar het geeft geen garanties ;)

MartinJM

[edit]
Als je het niet openbaar wilt zetten, kan je me ook een mailtje sturen. Klik op mijn naam om dat voor elkaar te krijgen!

Verder nog deze mooie quote die wel een beetje verwoord wat het altijd het probleem zal zijn bij codes:
“Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” - Brian Kernighan
[/edit]
 
Laatst bewerkt:
Ik geloof dat het bestand te groot is om hier up te loaden...

Ik ga er even naar kijken.



Even een vraagje: Waarmee heb je het gemaakt? Bij mij wil het niet openen :confused: En kladblok is nooit echt handig, en dan kan ik het alsnog niet proberen...
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan