EAN 128 check digit

di il
11 risposte

EAN 128 check digit

Ciao
ho un problema nella generazione del carattere di controllo.
In pratica l'algoritmo che ho costruito seguendo le specifiche, non mi restituisce il carattere corretto e non riesco a capire dove sbaglio.

Il codice deve contenere gli AI (01)-(10)-(15)

Qualcuno può darmi una mano
Grazie

11 Risposte

  • Re: EAN 128 check digit

    E come capiamo noi dove sbagli?
  • Re: EAN 128 check digit

    In codice che sto prendendo in esame è:
    (01)08016323045276(10)133191(15)210530
    la stringa derivante è 10201080163230452761013319110215210530
    il calcolo dovrebbe essere
    10*1=10
    20*2=40
    10*3=30
    80*4 320
    16*5 80
    32*6 192
    30*7 210
    45*8 360
    27*9 243
    61*10=610
    01*11=11
    33*12=396
    19*13=247
    11*14=154
    02*15=30
    15*16=240
    21*17=357
    05*18=90
    0*19=0

    Totale 3620

    (105+3620) mod 103 =17

    il codice corretto dovrebbe essere 50 ma a me da 17
  • Re: EAN 128 check digit

    Perché l'ultimo è 0*19 ?
  • Re: EAN 128 check digit

    Giulia, cosi non si capisce nulla.
    Comunque, l'approccio per risolvere questi problemi e' sempre lo stesso:

    1) si inizia con casi semplici, si fanno i conti a mano, quindi si fa l'implementazione e si controlla che sui casi di cui si conosce il risultato, il codice ritorni il risultato calcolato
    2) si cercano esempi su internet e si controlla se il risultato ritornate coincide con quello dell'esempio.

    SE non coincide, ci sono 2 casi:

    A) il codice e' sbagliato
    B) l'esempio e sbagliato (raro, ma non sarebbe la prima volta)

    In questo caso si procede come prima: si crea un esempio semplice simile a quello che da problemi, si fanno i conti a mano e si controlla cosa calcola il codice.
  • Re: EAN 128 check digit

    Scusate c'era un errore sull'ultima coppia
    ho provato a fare il calcolo su Excel in vari modi e ho spostato delle celle involontariamente


    ho provato in vari modi

    (01)08016323045276(10)133191(15)210530
    la stringa derivante è 10201080163230452761013319110215210530
    il calcolo dovrebbe essere
    10*1=10
    20*2=40
    10*3=30
    80*4 320
    16*5 80
    32*6 192
    30*7 210
    45*8 360
    27*9 243
    61*10=610
    01*11=11
    33*12=396
    19*13=247
    11*14=154
    02*15=30
    15*16=240
    21*17=357
    05*18=90
    30*19=570

    Totale 4295

    (105+3620) mod 103 = 72

    il codice corretto dovrebbe essere 50 ma a me da 72

    probabilmente il calcolo non si fa in questo modo, ma sui vari siti in cui ho trovato informazioni dicono di fare così

    grazie
  • Re: EAN 128 check digit

    Non e' che BANALMENTE stai considerando il checksum COME se fosse un dato?

    http://www.keepautomation.com/ean_128
  • Re: EAN 128 check digit

    Dove hai trovato il metodo? Come trasformi in stringa?
  • Re: EAN 128 check digit

    Ho capito l'errore
    posto la soluzione che potrebbe servire ad altri

    in pratica il carattere FNC1 (102) deve sempre essere preso completo

    10201080163230452761013319110215210530

    (CODE C) 105 +
    102 x 1 = 102
    01 x 2 = 2
    08 x 3 = 24
    01 x 4 = 4
    63 x 5 = 315
    23 x 6 = 138
    04 x 7 = 28
    52 x 8 = 416
    76 x 9 = 684
    10 x 10 = 100
    13 x 11 = 143
    31 x 12 = 372
    91 x 13 = 1183
    102 x 14 = 1428
    15 x 15 = 225
    21 x 16 = 336
    05 x 17 = 85
    30 x 18 = 540
    SOMMA 6230 MOD 103=50

    Grazie per l'aiuto
  • Re: EAN 128 check digit

    Ecco ... se avessi detto dove avevi trovato le regole avremmo fatto prima ...
  • Re: EAN 128 check digit

    Se avessi trovato le regole spiegate in modo comprensibile non avrei neanche chiesto aiuto
  • Re: EAN 128 check digit

    Non per polemizzare ma sei partita da

    da questo (01)08016323045276(10)133191(15)210530
    la stringa derivante è 10201080163230452761013319110215210530
    e poi un calcolo.

    Questi passaggi te li sei inventati (?) o li hai letti da qualche parte? Potevi solo indicare dove avevi letto già queste regole per facilitare la soluzione del TUO problema.

    Ma come non detto ... tutto ok.
Devi accedere o registrarti per scrivere nel forum
11 risposte