Newsgroup: it.comp.lang.visual-basic
Titolo: codice a barre

Questo codice l'ho scaricato dal sito comune, ma essendo non certamente un
gran falco non sono stato in grado di farlo funzionare , come posso fare ?
qualcuno è in grado di indicarmi la strda giusta ? ( magari un piccolo con
un  esempio lo capisco meglio )
Grazie in anticipo Max
Function MB_128(Ctrl, sx, sy, mx, my, CD)
'Declarations
Dim check_digit As Integer, i As Integer
Dim mod_width As Single
Dim barcode As String
Dim length As Integer
Dim code As String
barcode = Ctrl
length = Len(barcode)
If length = 0 Then Exit Function
'Determinazione dei caratteri CODE
If length = 0 Then Exit Function
Image = ""
For i = 1 To length
  If Mid$(barcode, i, 1) >= "0" And Mid$(barcode, i, 1) <= "9" Then
    Image = Image & "N"
  Else
    Image = Image & "A"
  End If
Next i
numerici = 0
For i = 1 To Len(Image)
  If Mid$(Image, i, 1) = "N" Then
    numerici = numerici + 1
  Else
    If numerici < 4 Then
      Image = Left$(Image, i - 1 - numerici) & String$(numerici, "A") &
Right$(Image, Len(Image) - i + 1)
      numerici = 0
    Else
      If numerici Mod 2 <> 0 Then
        Image = Left$(Image, i - 2) & "A" & Right$(Image, Len(Image) - i +
1)
        numerici = 0
      End If
    End If
  End If
Next i
If numerici < 4 Then
  Image = Left$(Image, i - 1 - numerici) & String$(numerici, "A") &
Right$(Image, Len(Image) - i + 1)
  numerici = 0
Else
  If numerici Mod 2 <> 0 Then
    Image = Left$(Image, i - 2) & "A" & Right$(Image, Len(Image) - i + 1)
    numerici = 0
  End If
End If
'L'immagine è corretta: calcolo il check_digit
If Left$(Image, 1) = "A" Then
  code = "A"
  check = 104
Else
  code = "N"
  check = 105
End If
peso = 1
numerici = 0
For i = 1 To length
  If Mid$(Image, i, 1) = "A" Then
    numerici = 0
    Select Case Mid$(barcode, i, 1)
      Case " "
        valore = 0
      Case "!"
        valore = 1
      Case Chr$(34)
        valore = 2
      Case "#"
        valore = 3
      Case "$"
        valore = 4
      Case "%"
        valore = 5
      Case "&"
        valore = 6
      Case "'"
        valore = 7
      Case "("
        valore = 8
      Case ")"
        valore = 9
      Case "*"
        valore = 10
      Case "+"
        valore = 11
      Case ","
        valore = 12
      Case "-"
        valore = 13
      Case "."
        valore = 14
      Case "/"
        valore = 15
      Case "0"
        valore = 16
      Case "1"
        valore = 17
      Case "2"
        valore = 18
      Case "3"
        valore = 19
      Case "4"
        valore = 20
      Case "5"
        valore = 21
      Case "6"
        valore = 22
      Case "7"
        valore = 23
      Case "8"
        valore = 24
      Case "9"
        valore = 25
      Case ":"
        valore = 26
      Case ";"
        valore = 27
      Case "<"
        valore = 28
      Case "="
        valore = 29
      Case ">"
        valore = 30
      Case "?"
        valore = 31
      Case "@"
        valore = 32
      Case "A"
        valore = 33
      Case "B"
        valore = 34
      Case "C"
        valore = 35
      Case "D"
        valore = 36
      Case "E"
        valore = 37
      Case "F"
        valore = 38
      Case "G"
        valore = 39
      Case "H"
        valore = 40
      Case "I"
        valore = 41
      Case "J"
        valore = 42
      Case "K"
        valore = 43
      Case "L"
        valore = 44
      Case "M"
        valore = 45
      Case "N"
        valore = 46
      Case "O"
        valore = 47
      Case "P"
        valore = 48
      Case "Q"
        valore = 49
      Case "R"
        valore = 50
      Case "S"
        valore = 51
      Case "T"
        valore = 52
      Case "U"
        valore = 53
      Case "V"
        valore = 54
      Case "W"
        valore = 55
      Case "X"
        valore = 56
      Case "Y"
        valore = 57
      Case "Z"
        valore = 58
      Case "["
        valore = 59
      Case "\"
        valore = 60
      Case "]"
        valore = 61
      Case "^"
        valore = 62
      Case "_"
        valore = 63
      Case "`"
        valore = 64
      Case "a"
        valore = 65
      Case "b"
        valore = 66
      Case "c"
        valore = 67
      Case "d"
        valore = 68
      Case "e"
        valore = 69
      Case "f"
        valore = 70
      Case "g"
        valore = 71
      Case "h"
        valore = 72
      Case "i"
        valore = 73
      Case "j"
        valore = 74
      Case "k"
        valore = 75
      Case "l"
        valore = 76
      Case "m"
        valore = 77
      Case "n"
        valore = 78
      Case "o"
        valore = 79
      Case "p"
        valore = 80
      Case "q"
        valore = 81
      Case "r"
        valore = 82
      Case "s"
        valore = 83
      Case "t"
        valore = 84
      Case "u"
        valore = 85
      Case "v"
        valore = 86
      Case "w"
        valore = 87
      Case "x"
        valore = 88
      Case "y"
        valore = 89
      Case "z"
        valore = 90
      Case "{"
        valore = 91
      Case "|"
        valore = 92
      Case "}"
        valore = 93
      Case "~"
        valore = 94
    End Select
    If code = "N" Then
      check = check + 100 * peso
      peso = peso + 1
      code = "A"
    End If
    check = check + valore * peso
    peso = peso + 1
  End If
  If Mid$(Image, i, 1) = "N" Then
    numerici = numerici + 1
    If numerici Mod 2 = 0 Then
      If code = "A" Then
        check = check + 99 * peso
        peso = peso + 1
        code = "N"
      End If
      cifra = Val(Mid$(barcode, i - 1, 2))
      check = check + cifra * peso
      peso = peso + 1
    End If
  End If
Next i
check = check Mod 103
If Left$(Image, 1) = "A" Then
  code = "A"
  image2 = "211214"
Else
  code = "N"
  image2 = "211232"
End If
numerici = 0
For i = 1 To length
  If Mid$(Image, i, 1) = "A" Then
    numerici = 0
    Select Case Mid$(barcode, i, 1)
      Case " "
        carattere = "212222"
      Case "!"
        carattere = "222122"
      Case Chr$(34)
        carattere = "222221"
      Case "#"
        carattere = "121223"
      Case "$"
        carattere = "121322"
      Case "%"
        carattere = "131222"
      Case "&"
        carattere = "122213"
      Case "'"
        carattere = "122312"
      Case "("
        carattere = "132212"
      Case ")"
        carattere = "221213"
      Case "*"
        carattere = "221312"
      Case "+"
        carattere = "231212"
      Case ","
        carattere = "112232"
      Case "-"
        carattere = "122132"
      Case "."
        carattere = "122231"
      Case "/"
        carattere = "113222"
      Case "0"
        carattere = "123122"
      Case "1"
        carattere = "123221"
      Case "2"
        carattere = "223211"
      Case "3"
        carattere = "221132"
      Case "4"
        carattere = "221231"
      Case "5"
        carattere = "213212"
      Case "6"
        carattere = "223112"
      Case "7"
        carattere = "312131"
      Case "8"
        carattere = "311222"
      Case "9"
        carattere = "321122"
      Case ":"
        carattere = "321221"
      Case ";"
        carattere = "312212"
      Case "<"
        carattere = "322112"
      Case "="
        carattere = "322211"
      Case ">"
        carattere = "212123"
      Case "?"
        carattere = "212321"
      Case "@"
        carattere = "232121"
      Case "A"
        carattere = "111323"
      Case "B"
        carattere = "131123"
      Case "C"
        carattere = "131321"
      Case "D"
        carattere = "112313"
      Case "E"
        carattere = "132113"
      Case "F"
        carattere = "132311"
      Case "G"
        carattere = "211313"
      Case "H"
        carattere = "231113"
      Case "I"
        carattere = "231311"
      Case "J"
        carattere = "112133"
      Case "K"
        carattere = "112331"
      Case "L"
        carattere = "132131"
      Case "M"
        carattere = "113123"
      Case "N"
        carattere = "113321"
      Case "O"
        carattere = "133121"
      Case "P"
        carattere = "313121"
      Case "Q"
        carattere = "211331"
      Case "R"
        carattere = "231131"
      Case "S"
        carattere = "213113"
      Case "T"
        carattere = "213311"
      Case "U"
        carattere = "213131"
      Case "V"
        carattere = "311123"
      Case "W"
        carattere = "311321"
      Case "X"
        carattere = "331121"
      Case "Y"
        carattere = "312113"
      Case "Z"
        carattere = "312311"
      Case "["
        carattere = "332111"
      Case "\"
        carattere = "314111"
      Case "]"
        carattere = "221411"
      Case "^"
        carattere = "431111"
      Case "_"
        carattere = "111224"
      Case "`"
        carattere = "111422"
      Case "a"
        carattere = "121124"
      Case "b"
        carattere = "121421"
      Case "c"
        carattere = "141122"
      Case "d"
        carattere = "141221"
      Case "e"
        carattere = "112214"
      Case "f"
        carattere = "112412"
      Case "g"
        carattere = "122114"
      Case "h"
        carattere = "122411"
      Case "i"
        carattere = "142112"
      Case "j"
        carattere = "142211"
      Case "k"
        carattere = "241211"
      Case "l"
        carattere = "221114"
      Case "m"
        carattere = "413111"
      Case "n"
        carattere = "241112"
      Case "o"
        carattere = "134111"
      Case "p"
        carattere = "111242"
      Case "q"
        carattere = "121142"
      Case "r"
        carattere = "121241"
      Case "s"
        carattere = "114212"
      Case "t"
        carattere = "124112"
      Case "u"
        carattere = "124211"
      Case "v"
        carattere = "411212"
      Case "w"
        carattere = "421112"
      Case "x"
        carattere = "421211"
      Case "y"
        carattere = "212141"
      Case "z"
        carattere = "214121"
      Case "{"
        carattere = "412121"
      Case "|"
        carattere = "111143"
      Case "}"
        carattere = "111341"
      Case "~"
        carattere = "131141"
    End Select
    If code = "N" Then
      image2 = image2 & "114131"
      code = "A"
    End If
    image2 = image2 & carattere
  End If
  If Mid$(Image, i, 1) = "N" Then
    numerici = numerici + 1
    If numerici Mod 2 = 0 Then
      cifra = Val(Mid$(barcode, i - 1, 2))
      Select Case cifra
        Case 0
          carattere = "212222"
        Case 1
          carattere = "222122"
        Case 2
          carattere = "222221"
        Case 3
          carattere = "121223"
        Case 4
          carattere = "121322"
        Case 5
          carattere = "131222"
        Case 6
          carattere = "122213"
        Case 7
          carattere = "122312"
        Case 8
          carattere = "132212"
        Case 9
          carattere = "221213"
        Case 10
          carattere = "221312"
        Case 11
          carattere = "231212"
        Case 12
          carattere = "112232"
        Case 13
          carattere = "122132"
        Case 14
          carattere = "122231"
        Case 15
          carattere = "113222"
        Case 16
          carattere = "123122"
        Case 17
          carattere = "123221"
        Case 18
          carattere = "223211"
        Case 19
          carattere = "221132"
        Case 20
          carattere = "221231"
        Case 21
          carattere = "213212"
        Case 22
          carattere = "323112"
        Case 23
          carattere = "312131"
        Case 24
          carattere = "311222"
        Case 25
          carattere = "321122"
        Case 26
          carattere = "321221"
        Case 27
          carattere = "312212"
        Case 28
          carattere = "322112"
        Case 29
          carattere = "322211"
        Case 30
          carattere = "212123"
        Case 31
          carattere = "212321"
        Case 32
          carattere = "232121"
        Case 33
          carattere = "111323"
        Case 34
          carattere = "131123"
        Case 35
          carattere = "131321"
        Case 36
          carattere = "112313"
        Case 37
          carattere = "132113"
        Case 38
          carattere = "132311"
        Case 39
          carattere = "211313"
        Case 40
          carattere = "231113"
        Case 41
          carattere = "231311"
        Case 42
          carattere = "112133"
        Case 43
          carattere = "112331"
        Case 44
          carattere = "132131"
        Case 45
          carattere = "113123"
        Case 46
          carattere = "113321"
        Case 47
          carattere = "133121"
        Case 48
          carattere = "313121"
        Case 49
          carattere = "211331"
        Case 50
          carattere = "231131"
        Case 51
          carattere = "213113"
        Case 52
          carattere = "213311"
        Case 53
          carattere = "213131"
        Case 54
          carattere = "311123"
        Case 55
          carattere = "311321"
        Case 56
          carattere = "331121"
        Case 57
          carattere = "312113"
        Case 58
          carattere = "312311"
        Case 59
          carattere = "332111"
        Case 60
          carattere = "314111"
        Case 61
          carattere = "221411"
        Case 62
          carattere = "431111"
        Case 63
          carattere = "111224"
        Case 64
          carattere = "111422"
        Case 65
          carattere = "121124"
        Case 66
          carattere = "121421"
        Case 67
          carattere = "141122"
        Case 68
          carattere = "141221"
        Case 69
          carattere = "112214"
        Case 70
          carattere = "112412"
        Case 71
          carattere = "122114"
        Case 72
          carattere = "122411"
        Case 73
          carattere = "142112"
        Case 74
          carattere = "142211"
        Case 75
          carattere = "241211"
        Case 76
          carattere = "221114"
        Case 77
          carattere = "413111"
        Case 78
          carattere = "241112"
        Case 79
          carattere = "134111"
        Case 80
          carattere = "111242"
        Case 81
          carattere = "121142"
        Case 82
          carattere = "121241"
        Case 83
          carattere = "114212"
        Case 84
          carattere = "124112"
        Case 85
          carattere = "124211"
        Case 86
          carattere = "411212"
        Case 87
          carattere = "421112"
        Case 88
          carattere = "421211"
        Case 89
          carattere = "212141"
        Case 90
          carattere = "214121"
        Case 91
          carattere = "412121"
        Case 92
          carattere = "111143"
        Case 93
          carattere = "111341"
        Case 94
          carattere = "131141"
        Case 95
          carattere = "114113"
        Case 96
          carattere = "114311"
        Case 97
          carattere = "411113"
        Case 98
          carattere = "411311"
        Case 99
          carattere = "113141"
      End Select
      If code = "A" Then
       image2 = image2 & "113141"
        code = "N"
      End If
      image2 = image2 & carattere
    End If
  End If
Next i
'inserisco il check digit e lo stop
Select Case Val(check)
  Case 0
    carattere = "212222"
  Case 1
    carattere = "222122"
  Case 2
    carattere = "222221"
  Case 3
    carattere = "121223"
  Case 4
    carattere = "121322"
  Case 5
    carattere = "131222"
  Case 6
    carattere = "122213"
  Case 7
    carattere = "122312"
  Case 8
    carattere = "132212"
  Case 9
    carattere = "221213"
  Case 10
    carattere = "221312"
  Case 11
    carattere = "231212"
  Case 12
    carattere = "112232"
  Case 13
    carattere = "122132"
  Case 14
    carattere = "122231"
  Case 15
    carattere = "113222"
  Case 16
    carattere = "123122"
  Case 17
    carattere = "123221"
  Case 18
    carattere = "223211"
  Case 19
    carattere = "221132"
  Case 20
    carattere = "221231"
  Case 21
    carattere = "213212"
  Case 22
    carattere = "323112"
  Case 23
    carattere = "312131"
  Case 24
    carattere = "311222"
  Case 25
    carattere = "321122"
  Case 26
    carattere = "321221"
  Case 27
    carattere = "312212"
  Case 28
    carattere = "322112"
  Case 29
    carattere = "322211"
  Case 30
    carattere = "212123"
  Case 31
    carattere = "212321"
  Case 32
    carattere = "232121"
  Case 33
    carattere = "111323"
  Case 34
    carattere = "131123"
  Case 35
    carattere = "131321"
  Case 36
    carattere = "112313"
  Case 37
    carattere = "132113"
  Case 38
    carattere = "132311"
  Case 39
    carattere = "211313"
  Case 40
    carattere = "231113"
  Case 41
    carattere = "231311"
  Case 42
    carattere = "112133"
  Case 43
    carattere = "112331"
  Case 44
    carattere = "132131"
  Case 45
    carattere = "113123"
  Case 46
    carattere = "113321"
  Case 47
    carattere = "133121"
  Case 48
    carattere = "313121"
  Case 49
    carattere = "211331"
  Case 50
    carattere = "231131"
  Case 51
    carattere = "213113"
  Case 52
    carattere = "213311"
  Case 53
    carattere = "213131"
  Case 54
    carattere = "311123"
  Case 55
    carattere = "311321"
  Case 56
    carattere = "331121"
  Case 57
    carattere = "312113"
  Case 58
    carattere = "312311"
  Case 59
    carattere = "332111"
  Case 60
    carattere = "314111"
  Case 61
    carattere = "221411"
  Case 62
    carattere = "431111"
  Case 63
    carattere = "111224"
  Case 64
    carattere = "111422"
  Case 65
    carattere = "121124"
  Case 66
    carattere = "121421"
  Case 67
    carattere = "141122"
  Case 68
    carattere = "141221"
  Case 69
    carattere = "112214"
  Case 70
    carattere = "112412"
  Case 71
    carattere = "122114"
  Case 72
    carattere = "122411"
  Case 73
    carattere = "142112"
  Case 74
    carattere = "142211"
  Case 75
    carattere = "241211"
  Case 76
    carattere = "221114"
  Case 77
    carattere = "413111"
  Case 78
    carattere = "241112"
  Case 79
    carattere = "134111"
  Case 80
    carattere = "111242"
  Case 81
    carattere = "121142"
  Case 82
    carattere = "121241"
  Case 83
    carattere = "114212"
  Case 84
    carattere = "124112"
  Case 85
    carattere = "124211"
  Case 86
    carattere = "411212"
  Case 87
    carattere = "421112"
  Case 88
    carattere = "421211"
  Case 89
    carattere = "212141"
  Case 90
    carattere = "214121"
  Case 91
    carattere = "412121"
  Case 92
    carattere = "111143"
  Case 93
    carattere = "111341"
  Case 94
    carattere = "131141"
  Case 95
    carattere = "114113"
  Case 96
    carattere = "114311"
  Case 97
    carattere = "411113"
  Case 98
    carattere = "411311"
  Case 99
    carattere = "113141"
  Case 100
    carattere = "114131"
  Case 101
    carattere = "311141"
  Case 102
    carattere = "411131"
End Select
image2 = image2 & carattere & "2331112"
'Determinazione della larghezza del modulo
mod_width = mx / (Int(Len(image2) / 6) * 11 + 2)
'Stampa della codifica
StartPoint = sx
For i = 1 To Len(image2)
  bar_width = mod_width * Val(Mid$(image2, i, 1))
  Select Case i Mod 2
    Case 0
      Color = 16777215
    Case 1
      Color = 0
  End Select
  Printer.Line (StartPoint, sy)-Step(bar_width, my), Color, BF
  StartPoint = StartPoint + bar_width
Next i
End Function

 un  esempio lo capisco meglio )
La strada giusta per cosa?
Invece del codice che non serve a nessuno avresti potuto dire
- il nome del progetto scaricato
- cosa vuoi ottenere
- che problemi hai
- se avevi un errore che errore e dove
- varie ed eventuali
Comunque ho dato un'occhiata al codice ed è un vero colabrodo: un manuale di
come NON si dovrebbe programmare.
Dovresti chiedere delucidazioni a chi l'ha inviato direttamente in e-mail.
Ciao

 ha scritto nel messaggio
news:oc7k8.67822$Ns4.2...@news2.tin.it...

il codice è pubblicato in  
www.it-lang-vb.net
  ed il file si chiama bcodesub
, il problema è che quando chimo la routin mi dice argomento non
facoltativo.
 Scusatemi ma sto cercando di imparare .

 facoltativo.
Beh, questo mi sembra facile!
Il problema è chiaramente riportato nell'errore.
Ti invito a premere il tasto "?" quando ti esce la finestra dell'errore,
comunque il problema è che stai passando un paramentro in meno, o al suo
interno la routine sta chiamando una sub con un parametro in meno...
Lo sai che premendo "Debug" al momento dell'errore VB ti porta sulla riga
incriminata, vero? E qual è questa riga?
Dacci un occhio.
Ciao