Silas - 2005.08.18
Suppose you have first 12 digits of EAN-13 barcode. You'll have to calcule the 13th digit, which is the checksum digit. I've done a little proc that makes it for you:
proc checksum {first12digits} { set total 0 for {set i 0} {$i < 12} {incr i} { set multiplicator [expr ($i % 2 == 0) ? 1 : 3] incr total [expr [string index $first12digits $i] * $multiplicator] } set checksum [expr 10 - ($total % 10)] return $checksum }
AK: A similar procedure can also be found in EAN-13 generation (ean13_csum).
See also Tcllib EAN 13 Validation and related packages.