EN
ArgeLab.net
 C#
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:

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:

  1. Önek = 978'dir, yani isbn-13 için ilk 3 basamak daima önektir. 978 ya da 979 değerini alabilir (zamanla bunlar artacak).
  2. 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
    
  3. 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.

  4. 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.
  5. 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.


   © Copyright 2006-2008 Serdar Irmak