ISBN-10 ve ISBN-13 barkod kontrolü ve tireleme
Son güncelleme 6 Ağustos 2006 Pazar
ISBN (International Standard Book Number) kitap barkod numaralarının dünyadaki standartıdır. Şu anda kullanılmakta olan ISBN-10 ve yakında onun yerini alacak olan ISBN-13 olmak üzere ikiye ayrılır. Tabi 10 ve 13 basamak adedini ifade ediyor. 13 basamak olan versiyonu EAN ismiyle de anılır. Bu sayfada yer alan iki örneğimizden ilki ISBN-10 ve ISBN-13 barkod numaralarının doğruluk kontrolünü yapıyor. İkincisi ise hyphenation olarak tabir edilen tireleme işlemi yapıyor. Tirelemek demek; kitaplarda ISBN numaralarını çoğu zaman 978-0-672-32369-0 gibi tirelerle ayrılmış olarak görürsünüz, işte bu numaraların hangi basamakları arasına tire atılması gerektiğinin bulunması işlemidir.
1 Ocak 2007'den itibaren 13 basamaklı ISBN'in yeni standard olacağı uzun zaman önce duyruldu ve haliyle son yıllarda kitaplarda iki kodlama birlikte yer almaya başladı. İki ISBN de sadece ondalık basamaklardan oluşur, bazı basamak araları boşluk veya tire ile ayrılmıştır. Tek istisna, ISBN 10'da sağdan ilk basamağın değeri "X" de olabilir.
ISBN şu parçalardan oluşur:
- Önek : ISBN 10'da bu kısım yoktur, 13'de ise 3 basamaktır.
- Grup : Ülke/dil/bölge veya ülke/dil/bölge grubu'dur. 1 ila 5 basamak olabilir.
- Yayınevi : bu kısımdaki basamak adedi de yine değişken.
- Yayın no : bu kısımdaki basamak adedi de değişken.
- Kontrol basamağı : En sağdaki basamaktır. ISBN 10 da istisnai olarak "X" değeri de alabilir. Sonuçta 10 veya 11 olasılıklı bir kontrol toplamı ile hata yapma oranı 1/10 veya 1/11 oluyor.
Pek çok sitede ISBN-10 anlatıldığı için biz bir örnekle ISBN-13'ü açalım ve tirelemeyi (hyphenation) nasıl yapabileceğimizi inceleyelim.
9780672323690 ISBN-13 barkodu için:
- Önek = 978'dir, yani isbn-13 için ilk 3 basamak daima önektir. 978 ya da 979 değerini alabilir (zamanla bunlar artacak).
- Grup = 0'dır yani İngilizce grubu. Aşağıdaki tabloda da görüldüğü üzere basamak değerine göre basamak adedi değişiyor.
0 - 7 1 basamak
80 - 94 2 basamak
950 - 993 3 basamak
9940 - 9989 4 basamak
99900 - 99999 5 basamak
- yayınevi = 672'dir. Yayınevinin basamak sayısını bulabilmek için her gruba (veya ülkeye) atanmış yayınevlerinin kod aralıklarına ihtiyaç vardır. Örneğin grup 0 için bunlar:
00 - 19
200 - 699
7000 - 8499
85000 - 89999
900000 - 949999
9500000 - 9999999
Dolayısıyle tabloya göre 672 -> 3 basamaktır. 672 nolu yayınevinin ismi SAMS.
- Yayın no = 32369, yani "Tricks of the Windows Game Programming Gurus" isimli kitap. Barkodun yayınevi basamaklarının bitiminden, son basamağa (kontrol basamağına) kadar olan kısım yayın numarasını gösterir.
- Kontrol basamağı = 0'dır. 13 basamaklı ISBN'in kontrol basamağının hesaplanması (en sağdaki basamak) şöyledir:
Soldan başlayarak, ilk 12 basamağın basamak nosu tek olanları 1, çift olanları 3 ile çarpıp tümünü toplayarak sonucu 10 a böldüğümüzde bölme işleminin kalanıdır.
Örneğe göre ( 9*1 + 7*3 + 8*1 + 0*3 + 6*1 + 7*3 + 2*1 + 3*3 + 2*1 + 3*3 + 6*1 + 9*3 ) mod 10 = 120 mod 10 = 0 (120'nin 10'a bölümünden kalan 0'dır)
Sonuçta örneğimiz 978-0-672-32369-0 şeklinde tirelenir.
10 ve 13 basamaklı ISBN kontrol fonksiyonu
ISBN kontrolü kolay olmasına karşın önek - ülke - yayınevi - yayın no - kontrol basamaklarını tirelerle ayırmak zaman alıcıdır. Ülke kodu değerinden basamak sayısını bulmak kolay ama yayınevi basamak sayısını bulabilmek için yayınevi kod aralıklarını bir tabloda tutmak ve sorgulama yapmak gerekiyor.
Aşağıda yer alan çözüm zamanımı aldı ama gayet iyi sonuç veriyor.
argelab_barkod_kontrolu_ve_tireleme.zip (46K)
ArgeLab.net, bu sitenin
eksiksiz ve hatasız olduğu
konusunda bir garanti veremez. Bu sitede yer alan bilgilerin ve
programların kullanımı sonucu oluşabilecek zararlardan
sorumlu tutulamaz.