Garbage Collection


2006-08-22

§ **[prog] 10桁と13桁のISBNコードを連番で1000冊分出力するスクリプト

http://www.lizard-tail.com/isana/lab/isbn/isbn_check.rb?code=001&start=1~

えーと、まあ、そういうもの。「あー、あの本はISBNコードが13桁になると、チェックデジットはどうなるんだろう?」という素朴な疑問に1000冊分一気に答えてくれる。これでいざという時も安心。何が?

書籍やCD-ROMなどについているISBNのコードは最後の一桁が「チェックデジット」と呼ばれるチェック用の数字になっていて、残りの9桁をある一定のルールで掛けたり足したり割ったりすると計算できる。つまり、チェックデジットとそれ以外の9桁をつきあわせれば、コードにエラーが含まれていないかどうかをチェックできるというわけ。

で、これまでISBNは10桁だったんだけど、英語圏で桁数が足りなくなって13桁に増やすことになった(日本の割当にはまだずいぶん余裕があるんだけどね)。まあ、これに関しては、オンラインで提供される電子メディアにもコードを付加したりして、もっと積極的に活用しようという流れの一環でもあるらしい。

かくして、2007年1月1日以降に出版される書籍はすべて13桁のISBNコードを付けなくちゃいけなくなった。さらにそれに加えて既存の書籍も随時13桁に移行すべしということになった。さあ大変。実際には、頭に3桁足されるだけだから数字が大幅に変わったりはしないんだけど、チェックデジットの計算方法が変わっているので、末尾の1桁は全部計算しなおさなくちゃいけない。1冊や2冊ならどうっていうことはないんだけど、過去に出た本の番号を全部計算しなおすとなるとなかなか大変。

というわけで、作ったのがこのスクリプト。古い10桁のコードと新しい13桁のコードの対照表をずらーっと1000冊分表示する。出力されるのはただのカンマ区切りテキストなので、表計算ソフトに読み込むなり、エディタで加工するなりご自由に。普通の人には全く役に立たないけれど、ここに置いておけばいつか誰かの役に立つかもしれない。

ref.日本図書コード管理センター - Japan ISBN Agency

(使い方)~

URL末尾の"code=〜"で出版社コード(3桁)を、"start=〜"で書籍コードの開始番号(1〜99999)を指定。

本当は出版社コードの桁数は出版社によって違うけれど、書籍コードと合わせて3+5桁の8桁になるように調整してください。ハイフンが入ってないけど、エディタにコピーペーストして検索置換すれば簡単に入れられるとおもいます。調べた範囲では正しい数値がでていたけれど、念のためチェックしてから使ってください。

動けばいいやで作ったので、とても人に見せられるものじゃないけれど...ソースコード