Programación General > Visual Basic 6.0 e inferiores

 Como Leer Un Codigo De Barra

(1/2) > >>

_EL_DJ_LU:
Hola a todos.... muchas gracias por la ayuda que siempre me dan... gracias de verdad..

Ahora tengo un problema...  quiero saber como puedo leer una barra de codigo ...


Dentro de poco comprare una lectora de barra de codigo... pero como puedo hacer para que lo que leea lo ponga en un control "text" por ejemplo....

Algo parecido a codigo de productos de una tienda.. me entienden no??/

Espero que si... pero yo lo quero usar para leer tarjetas de identificacion estas tienen un codigo de barra ... muchas gracias....


gracias....

Cyclop:
Las lectoras de codigo de barra funcionan como el teclado, si el cursor esta en un textbox, y lees un codigo de barra, automaticamente los datos van a aparecer en el textbox como si lo ubiera ingresado por el teclado, mejor dicho la lectora convierte el codigo de barra en pulsasiones de teclas.


Salu2

_EL_DJ_LU:
Gracias por la respuesta... con eso creo que me quedo claro esa parte... muchas gracias...ahora solo me falta prebar eso.. pero no te preocupes comprare dicha lectora y lo probare...


Ahora tengo otra duda... yo quiero dise;ar esas tarjetas de identificacion para cada usuario.. para esto yo tengo que imprimir los codigos de barra...

Me podrian decir como puedo hacer esto???? donde consigo la fuente de codigo de barras... muchas gracias.....


Muchas gracias ahora si con esto avanzo con mi programa... gracias.. gracias..



_EL_DJ_LU

Cyclop:
Uno puede ser que te bajes unas fuentes true type de codigo de barra y lo insertes en tus reportes, para mayor explicacion revisa esta pagina, yo vi un ejemplo con Visual Foxpro.

http://www.idautomation.com/

http://www.idautomation.com/sitemap/visual...rcodeFontModule


Salu2

Cyclop:
En Visual Foxpro funciona algo asi

Tienes un label y quieres que ahi te muestre un codigo de barras, entonces en la propiedad font le indicas el tipo de fuente de codigo de barras (Ej. Micodebar.ttf), pero ahi no termina todo, para que la lectura pueda interpretar lo tienes que codificar, por ejeplo vas a utilizar el cdigo 128c, usas la funcion Code128

que hace esto, converte el codigo del productor en una cadena para impresion de codigo de barras

Tu codigo
01081995JUAN32

Cadena de codigo de barra
Í!(3ÃÈJUAN32fÎ

Las lectoras solo te podran leer las cadenas de codigo de barra y te retornan, tu codigo de material o lo que fuere.

Espero que esto te ayude

Salu2


--- Código: Text --- Public Function Code128(DataToFormat As String, ReturnType As Integer) As String'' Copyright © IDautomation.com, Inc. 2001.  All rights reserved.' For more info visit http://www.IDAutomation.com'' You may use our source code in your applications only if you are using barcode fonts created by IDautomation.com, Inc.' and you do not remove the copyright notices in the source code.'' The purpose of this code is to calculate the Code 128 barcode for ANY character set'' Encode UCC/EAN 128 by inserting ASCII 202 into the string to encode'' You MUST use the fully functional Code 128 (dated 12/2000 or later)' font for this code to create and print a proper barcode'    DataToPrint = ""    DataToFormat = RTrim(LTrim(DataToFormat))    C128_StartA = Chr(203)    C128_StartB = Chr(204)    C128_StartC = Chr(205)    C128_Stop = Chr(206)'Here we select character set A, B or C for the START character    StringLength = Len(DataToFormat)    CurrentCharNum = Asc(Mid(DataToFormat, 1, 1))    If CurrentCharNum < 32 Then C128Start = C128_StartA    If CurrentCharNum > 31 And CurrentCharNum < 127 Then C128Start = C128_StartB    If ((StringLength > 4) And IsNumeric(Mid(DataToFormat, 1, 4))) Then C128Start = C128_StartC'202 is the FNC1, with this Start C is mandatory    If CurrentCharNum = 202 Then C128Start = C128_StartC    If C128Start = Chr(203) Then CurrentEncoding = "A"    If C128Start = Chr(204) Then CurrentEncoding = "B"    If C128Start = Chr(205) Then CurrentEncoding = "C"    For I = 1 To StringLength    'check for FNC1 in any set        If ((Mid(DataToFormat, I, 1)) = Chr(202)) Then            DataToEncode = DataToEncode & Chr(202)    'check for switching to character set C        ElseIf ((I < StringLength - 2) And (IsNumeric(Mid(DataToFormat, I, 1))) And (IsNumeric(Mid(DataToFormat, I + 1, 1))) And (IsNumeric(Mid(DataToFormat, I, 4)))) Or ((I < StringLength) And (IsNumeric(Mid(DataToFormat, I, 1))) And (IsNumeric(Mid(DataToFormat, I + 1, 1))) And (CurrentEncoding = "C")) Then        'switch to set C if not already in it            If CurrentEncoding <> "C" Then DataToEncode = DataToEncode & Chr(199)            CurrentEncoding = "C"            CurrentChar = (Mid(DataToFormat, I, 2))            CurrentValue = CInt(CurrentChar)        'set the CurrentValue to the number of String CurrentChar            If (CurrentValue < 95 And CurrentValue > 0) Then DataToEncode = DataToEncode & Chr(CurrentValue + 32)            If CurrentValue > 94 Then DataToEncode = DataToEncode & Chr(CurrentValue + 100)            If CurrentValue = 0 Then DataToEncode = DataToEncode & Chr(194)            I = I + 1    'check for switching to character set A        ElseIf (I <= StringLength) And ((Asc(Mid(DataToFormat, I, 1)) < 31) Or ((CurrentEncoding = "A") And (Asc(Mid(DataToFormat, I, 1)) > 32 And (Asc(Mid(DataToFormat, I, 1))) < 96))) Then        'switch to set A if not already in it            If CurrentEncoding <> "A" Then DataToEncode = DataToEncode & Chr(201)            CurrentEncoding = "A"        'Get the ASCII value of the next character            CurrentCharNum = (Asc(Mid(DataToFormat, I, 1)))            If CurrentCharNum = 32 Then                DataToEncode = DataToEncode & Chr(194)            ElseIf CurrentCharNum < 32 Then                DataToEncode = DataToEncode & Chr(CurrentCharNum + 96)            ElseIf CurrentCharNum > 32 Then                DataToEncode = DataToEncode & Chr(CurrentCharNum)            End If    'check for switching to character set B        ElseIf (I <= StringLength) And ((Asc(Mid(DataToFormat, I, 1))) > 31 And (Asc(Mid(DataToFormat, I, 1)))) < 127 Then        'switch to set B if not already in it            If CurrentEncoding <> "B" Then DataToEncode = DataToEncode & Chr(200)            CurrentEncoding = "B"        'Get the ASCII value of the next character            CurrentCharNum = (Asc(Mid(DataToFormat, I, 1)))            If CurrentCharNum = 32 Then                DataToEncode = DataToEncode & Chr(194)            Else                DataToEncode = DataToEncode & Chr(CurrentCharNum)            End If        End If    Next I        HumanReadableText = ""'FORMAT TEXT FOR AIs    StringLength = Len(DataToFormat)    For I = 1 To StringLength    'Get ASCII value of each character        CurrentCharNum = Asc(Mid(DataToFormat, I, 1))    'Check for FNC1        If ((I < StringLength - 2) And (CurrentCharNum = 202)) Then        'It appears that there is an AI        'Get the value of each number pair (ex: 5 and 6 = 5*10+6 =56)            CurrentChar = (Mid(DataToFormat, I + 1, 2))            CurrentCharNum = CInt(CurrentChar)        'Is 4 digit AI?            If ((I < StringLength - 4) And ((CurrentCharNum <= 81 And CurrentCharNum >= 80) Or (CurrentCharNum <= 34 And CurrentCharNum >= 31))) Then                HumanReadableText = HumanReadableText & " (" & (Mid(DataToFormat, I + 1, 4)) & ") "                I = I + 4        'Is 3 digit AI?            ElseIf ((I < StringLength - 3) And ((CurrentCharNum <= 49 And CurrentCharNum >= 40) Or (CurrentCharNum <= 25 And CurrentCharNum >= 23))) Then                HumanReadableText = HumanReadableText & " (" & (Mid(DataToFormat, I + 1, 3)) & ") "                I = I + 3        'Is 2 digit AI?            ElseIf ((CurrentCharNum <= 30 And CurrentCharNum >= 0) Or (CurrentCharNum <= 99 And CurrentCharNum >= 90)) Then                HumanReadableText = HumanReadableText & " (" & (Mid(DataToFormat, I + 1, 2)) & ") "                I = I + 2            End If        ElseIf (Asc(Mid(DataToFormat, I, 1)) < 32) Then            HumanReadableText = HumanReadableText & " "        ElseIf ((Asc(Mid(DataToFormat, I, 1)) > 31) And (Asc(Mid(DataToFormat, I, 1)) < 128)) Then            HumanReadableText = HumanReadableText & Mid(DataToFormat, I, 1)        End If    Next I    DataToFormat = ""    '<<<< Calculate Modulo 103 Check Digit >>>>'Set WeightedTotal to the value of the start character    weightedTotal = (Asc(C128Start) - 100)    StringLength = Len(DataToEncode)    For I = 1 To StringLength    'Get the ASCII value of each character        CurrentCharNum = (Asc(Mid(DataToEncode, I, 1)))    'Get the Code 128 value of CurrentChar according to chart        If CurrentCharNum < 135 Then CurrentValue = CurrentCharNum - 32        If CurrentCharNum > 134 Then CurrentValue = CurrentCharNum - 100        If CurrentCharNum = 194 Then CurrentValue = 0    'multiply by the weighting character        CurrentValue = CurrentValue * I    'add the values together        weightedTotal = weightedTotal + CurrentValue    Next I'divide the WeightedTotal by 103 and get the remainder, this is the CheckDigitValue    CheckDigitValue = (weightedTotal Mod 103)'Now that we have the CheckDigitValue, find the corresponding ASCII character from the table    If CheckDigitValue < 95 And CheckDigitValue > 0 Then C128_CheckDigit = Chr(CheckDigitValue + 32)    If CheckDigitValue > 94 Then C128_CheckDigit = Chr(CheckDigitValue + 100)    If CheckDigitValue = 0 Then C128_CheckDigit = Chr(194)'Check for spaces or "00" and print ASCII 194 instead'place changes in DataToPrint    StringLength = Len(DataToEncode)    For I = 1 To StringLength        CurrentChar = Mid(DataToEncode, I, 1)        If CurrentChar = " " Then CurrentChar = Chr(194)        DataToPrint = DataToPrint & CurrentChar    Next I'Get Printable String    Printable_string = C128Start & DataToPrint & C128_CheckDigit & C128_Stop & " "    DataToEncode = ""    DataToPrint = ""'ReturnType 0 returns data formatted to the barcode font    If ReturnType = 0 Then Code128 = Printable_string'ReturnType 1 returns data formatted for human readable text    If ReturnType = 1 Then Code128 = HumanReadableText'ReturnType 2 returns the check digit for the data supplied    If ReturnType = 2 Then Code128 = C128_CheckDigit    End Function   

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa