Sviluppo4d.it
Sito indipendente di informazioni tecniche per sviluppatori 4th Dimension italiani  

Sviluppatori 4D

Utility 4D

Risorse 4D



4d logo
Naviga: Prev Next

Titolo: Calcolo del checksum di un codice a barre EAN13 *

Categoria: Codice Ultimo Aggiornamento: 21/06/05


EAN13 è uno dei tipi di barcode più usati (il suo equivalente negli Stati Uniti è il codice UPC-A,che è un sottoinsieme di EAN13, ma dal 2005 i negozi americani devono accettare anche EAN13, eliminando di fatto la differenziazione).
Il tredicesimo carattere di un codice EAN13 è il codice di controllo del codice a barre, che viene calcolato utilizzando questo sistema:
- Si sommano le cifre del codice di posto pari
- Si aggiunge la somma delle cifre di posto dispari, ma moltiplicata per tre.
- Il checksum sarà il numero da aggiungere a questa somma per ottenere il primo multiplo di 10 immediatamente superiore.

Esprimiamo l'algoritmo di formato 4th Dimension:

$check:=0
For ($i;12;1;-1)
      If (($i/2)#($i\2))
           $check:=$check+(Num($String_to_encode[[$i]]))
      Else
           $check:=$check+(Num($String_to_encode[[$i]])*3)
      End if
End for

$check_S:=String($check)
$check:=10-Num(Substring($check_s;Length($check_s)))


Fonte: 4D Knowledgebase




Inviato da: PierPaolo Sichera Visite: 24456


Bubbal* 20/06/05 00:00:00
Grazie innanzitutto per l'algoritmo ...
Premesso che non sono una sviluppatrice 4D ma .net,
secondo me in qualunque linguaggio lo giri, un algoritmo deve restare valido.
Ho trovato una discrepanza tra la descrizione
>> - Si sommano le cifre del codice di posto pari
>> - Si aggiunge la somma delle cifre di posto dispari, ma moltiplicata per tre.
e il codice ...
Secondo me il codice è corretto, ma nella descrizione andrebbero invertiti le parole pari e dispari.
Cioè, le cifre di posto dispari (1^, 3^, 5^ carattere) le tengo così, le cifre pari (2^, 4^, 6^ carattere) le moltiplico per 3.
A meno che non pensiate ad una stringa 0-based in cui il primo carattere è pari e così via, ma questo, se corretto come implementazione, non mi sembra corretto in termini di descrizione dell'algoritmo.
Scusate la pedanteria, ma non avevo sottomano l'algoritmo scritto da me, solo i codici che ho generato e per un attimo ho avuto il terrore di aver sbagliato il lavoro di mesi ...
Buon lavoro


PierPaolo Sichera 21/06/05 00:00:00
E' vero, manca "partendo da destra" :) cioè il 12esimo carattere è il primo preso in considerazione.. grazie della segnalazione!

Se accedi con utente e password, puoi aggiungere dei commenti.


Accesso

User:
Pass: Accedi

Cerca

Se non trovi le informazioni che cerchi scrivi a aiuto@sviluppo4d.it

4D Principali

4D Discussioni

Faq random


Crediti

Dominio registrato da ZetaNet
Sito realizzato da Nexus srl
4D SQL 11.9.0 offerto da 4D & Italsoftware
Icone di FAMFAMFAM
Moderato da Umberto Migliore
333 utenti registrati

Pagina servita il 21/12/24 alle 19:29:34 Valid HTML 4.01! Valid CSS!

Mutuo Facile, iDigitalScout, iDigitalTags e altre app di Nexid srl per iPhone e iPad

Cidroid, distributore italiano lettori barcode per IOS Apple iPhone, iPod, iPad