
EAN-13
"EAN-13" este folosit in intreaga lume pentru a marca bunuri comercializate retail. Acest cod de bare codifica 13
caractere: primele doua sau trei sunt codul tarii in care producatorul este inregistrat (poate sa nu coincida cu
tara in care produsul a fost de fapt realizat). Codul de tara este urmat de 9 sau 10 digiti de date (acest
lucru depinde de lungimea codului tarii) si un singur digit de control. Se mai pot adauga coduri de bare suplimentare
formate din 2 sau 5 digiti rezultand astfel un total de 14 sau 17 digiti de date.
Uniform Code Council (organizatia care reglementeaza codurile de bare pentru retail in SUA) a anuntat ca incepand cu
data de 1 ianuarie 2005, toate sistemele de scanare de retail din SUA vor trebui sa accepte simboluri EAN-13 precum
si standardul UPC-A. Aceasta schimbare va elimina necesitatea
ca producatorii ce exporta bunuri in SUA si Canada sa-si eticheteze produsele in doua standarde.
Suma de control este reprezentata de un calcul modulo 10:
- Adunati valorile digitilor aflati in pozitii reprezentate de numere pare: 2, 4, 6, etc.
- Inmultiti rezultatul cu 3.
- Adunati valorile digitilor aflati in pozitii reprezentate de numere impare: 1, 3, 5, etc.
- Insumati rezultatele pasilor 2 si 3.
- Caracterul de control este cel mai mic numar care, adunat cu rezultatul de la pasul 4, produce un multiplu de
10.
Exemplu: Fie urmatorul cod de bare = 001234567890
- 0 + 2 + 4 + 6 + 8 + 0 = 20
- 20 * 3 = 60
- 0 + 1 + 3 + 5 + 7 + 9 = 25
- 60 + 25 = 85
- 85 + X = 90 (cel mai apropiat numar mai mare sau egal multiplu de 10), rezulta X = 5 (digit de control)
Iata un exemplu de functie in Visual Basic ce poate calcula digitul de control:
Function Append_EAN_Checksum (RawString as String)
Dim Position as Integer
Dim CheckSum as Integer
CheckSum = 0
For Position = 2 to 12 step 2
Checksum = Checksum + Val(Mid$(RawString, Position, 1))
Next Position
CheckSum = CheckSum * 3
For Position = 1 to 11 Step 2
CheckSum = CheckSum + Val(Mid$(RawString, Position, 1))
Next Position
CheckSum = CheckSum Mod 10
CheckSum = 10 - CheckSum
If CheckSum = 10 Then
CheckSum = 0
End If
Append_Ean_Checksum = RawString & Format$(CheckSum, "0")
End Function
Foarte multe tari au autoritati ce reglementeaza folosirea de coduri de bare in retail.
Informations provided by "Measurement Equipment Corporation".
|
|