[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 [https://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/valtype/ean13.html%|%Tcllib EAN 13 Validation] and related packages. <> Barcode