« CEEK.JP Labs をはじめました | メイン | 自炊ではない »

2004年11月04日

ISBN のチェックサム

978 から始まるバーコードは ISBN なのですが、ヘッダ情報がくっついていて邪魔です。ということで、ヘッダ情報を除くコードを Perl で書いてみました。これでバーコードから ISBN を算出できる!

まぁ。全然すごいことではないけどね。単に ISBN のチェックサムを算出してくっつけるだけ。

if ($code =~ /^978(\d)(\d)(\d)(\d)(\d)(\d)(\d)(\d)(\d)/) {
    my $c = ($1 + $2 * 2 + $3 * 3 + $4 * 4 + $5 * 5 + $6 * 6 + $7 * 7 + $8 * 8 + $9 * 9) % 11;
    if ($c == 10) {
        $c = "X";
    }
    $code = $1 . $2 . $3 . $4 . $5 . $6 . $7 . $8 . $9 . $c;
}

$code には、対象となるバーコードの数字が入っているものとします。なんか、とっても汚い書き方かも。

EAN(JAN)は、変換できませんので。書籍の下側のバーコードのことね。今回のは、上側のバーコードのみ対応。

2004年11月04日 03:21 | Programming

トラックバック

コメント