Ean8 ve Ean13 Barkod hesaplamasi

Merhabalar, Kacan uykumun pesinden kosmak yerine bloglamak istedim. Fakat suan macbookumda oldugum icin turkce karakter kullanamiyorum malesef. Dubai mali olunca cihaz 🙂

Bu aralar check algoritmalarinin paylasildigi bir yer haline gelmekte baktim ki burasi, Luhn Check mod 10 dogrulamasi mevcut, Tc Kimlik dogrulamasi mevcut C# da EAN 13 ve EAN8 nasil hesaplanir onu yazayim dedim.

Turkce karakter kullanmadigim icin ozur dileyecektim konuyu nasil dagittim nereye ne sekilde blog’un iceriginde dondu 🙁 anlamadim ve suan ise yarar birsey yapmanin en guzel kismi uykum geldi 🙁

Fazla uzatmiyim EAN 8 ve EAN 13 birer barkod cesididir. Hatta en cok kullanilanlardan birtanesidir. Ean13’u surekli ev urunlerinde gorurz uzunlu kisali olan barkod cesitlerindendir ean.

Ean 13 e ornek :

perakendecilik sektorunden bir ornek ve anlatimi.

Ean 13 ilk 12 hanesi barkod datasidir. 13. karakter kontrol dijit.

Ean 8 ilk 7 hanesi barkod datasi, 8. karakter kontrol dijiti.

kimi yerde kontrol dijiti kimi yerde check digit yaziyorum kusura bakmayin.

(Kodlar baska kaynaklardan alintidir..)

Ean 13 C# kodu :

static int _checksum_ean13(String data)
{
    // Test string for correct length
    if(data.Length != 12 && data.Length != 13)
        return -1;

    // Test string for being numeric
    for(int i=0;i<data.Length;i++)
    {
        if(data[i] < 0x30 || data[i] > 0x39)
            return -1;
    }

    int sum = 0;

    for(int i=11;i>=0;i--)
    {
        int digit = data[i] - 0x30;
        if ((i & 0x01) == 1)
            sum += digit;
        else
            sum += digit * 3;
    }
    int mod = sum % 10;
    return mod == 0 ? 0 : 10 - mod;
}

Ean 8 C# Kodu :

static int _checksum_ean8(String data)
{
    // Test string for correct length
    if(data.Length != 7 && data.Length != 8)
        return -1;
	
    // Test string for being numeric
    for(int i=0;i<data.Length;i++)
    {
        if(data[i] < 0x30 || data[i] > 0x39)
            return -1;
    }

    int sum = 0;

    for(int i=6;i>=0;i--)
    {
        int digit = data[i] - 0x30;
        if ((i & 0x01) == 1)
            sum += digit;
        else
            sum += digit * 3;
    }
    int mod = sum % 10;
    return mod == 0 ? 0 : 10 - mod;
}

2 comments

  1. Merhaba;
    EAN 13 Barkod da 12 rakamdan sonra gelen 13 kontrol dijit nasıl hesaplanıyor. Sistematiği nedir. Yani neye göre belirliyor o rakamın kaç olacağını.

  2. A1
    =MOD(10-MOD(TOPLA.ÇARPIM(PARÇAAL(A1;SATIR(DOLAYLI(“1:”&UZUNLUK(A1)));1)*((MOD(SATIR(DOLAYLI(“1:”&UZUNLUK(A1)));2)=0)*3+(MOD(SATIR(DOLAYLI(“1:”&UZUNLUK(A1)));2)=1)));10);10)

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.