EAN8, EAN13 ve EAN 128 Barkodlar hepsi aynı çalışmada...

1 2 3 4 5 6 7 8 9
22/08/2019, 21:54

skat

Ellerinize sağlık
12/11/2019, 19:43

raindorfler

Harika ve yararlı olmuş hocam. teşekkürlerr
14/11/2019, 14:50

burhanb

merhaba.

Kontrol Karakteri hesaplama ihtiyaçı olan çıkabilir.


-----------------------------
Option Compare Database

'EAN-8 tipindeki "55123457" barkod rakamında 7 kontrol basamağıdır.

'sıra no          1        2        3      4      5      6      7      8      9
'-------------------------------------------------------------------------------------
'Barcod            5        5        1      2      3      4      5      ?      ?
'Position          O        E        O      E      O      E      O      E      O
'Ağırlık          3        1        3      1      3      1      3      1      3
'Çarpan          5 * 3    5 * 1    1 * 3  2 * 1  3 * 3  4 * 1  5 * 3  ?*1    ?*3
'Ağırlık Topl    15        5        3      2      9      4      15
'Toplam Sonuç    15  +    5    +  3  +  2  +  9  +  4  +  15  +  0  +  0  = 53. - 60 = 7

Function ean8_Hesapla(barkod8)
Dim b(1 To 7) As Integer
    For m = 1 To 7
        b(m) = Mid(barkod8, m, 1)
    Next
    hsp3 = b(1) * 3 + b(2 * 1) + b(3) * 3 + b(4) * 1 + b(5) * 3 + b(6) * 1 + b(7) * 3
     
    sonuc = 10 - hsp3 Mod 10
    ean8_Hesapla = sonuc
End Function

'EAN-10 tipindeki "334655628" barkod rakamında 6 kontrol basamağıdır. Hesap Mantığı EAN-8 Tipi ile aynıdır.

Function ean10_Hesapla(barkod10)
Dim c(1 To 9) As Integer
    For z = 1 To 9
        c(z) = Mid(barkod10, z, 1)
    Next
   
  hsp4 = c(1) * 3 + c(2) * 1 + c(3) * 3 + c(4) * 1 + c(5) * 3 + c(6) * 1 + c(7) * 3 + c(8) * 1 + c(9) * 3
     
    sonuc = 10 - hsp4 Mod 10
   
    ean10_Hesapla = sonuc
End Function




'EAN-13 tipindeki 8697543170035 barkod rakamında 5 kontrol basamağıdır.

'Aşağıda hesaplama mantığı adım adım anlatılmıştır.

'1.Adım: Barkod rakamının çift haneleri toplanır. 6+7+4+1+0+3=21
'2.Adım: 1.adımda çıkan sayı 3 ile çarpılır. 21*3=63
'3.Adım: Barkod rakamının tek haneleri toplanır. 8+9+5+3+7+0=32
'4.Adım: 2 inci adımda elde edilen sayı ile 3 üncü adımda elde edilen sayı toplanır. 63+32=95
'5.Adım: 4.adımda elde edilen sayı (yukarıda 95 sayısı) kendisinden büyük 10 u katı olan 100 den çıkartılır.100-95=5
'Sonuç: 6 ncı adımda elde edilen sayı (yukarıda 5 olarak elde edilmiş) kontrol basamağı (Check Digit) rakamıdır

Function BarkodHesapla(barkod13)
Dim a(1 To 12) As Integer
    For n = 1 To 12
        a(n) = Mid(barkod13, n, 1)
    Next
  hsp1 = a(2) + a(4) + a(6) + a(8) + a(10) + a(12)
  hsp2 = a(1) + a(3) + a(5) + a(7) + a(9) + a(11)
   
    sonuc = 10 - ((3 * hsp1) + hsp2) Mod 10
    BarkodHesapla = sonuc
End Function


----------------------------
14/11/2019, 18:38

mehmetdemiral

Teşekkürler. Çok yararlı bilgiler olmuş.
19/11/2019, 22:30

raindorfler

Yapamadığım 2 şey var. 
Bende 13 rakamlı kontrol sağlanmış barkod rakamları var. Önce otomatik olarak 2 ye düşürmem gerekli.
Diğeri ise 6 rakamlı manuel sayılar var. Bunlarında önüne 12 basamağa tamamlamak için "0" sıfır ekmek.
Market sayım ve etiket basma üzerine uğraşıyorum. Ama çok acemiyim. Sadece hazır kodlardan alıntı ile
20/11/2019, 12:08

ozanakkaya

(19/11/2019, 22:30)raindorfler yazdı: Yapamadığım 2 şey var. 
Bende 13 rakamlı kontrol sağlanmış barkod rakamları var. Önce otomatik olarak 2 ye düşürmem gerekli.
Diğeri ise 6 rakamlı manuel sayılar var. Bunlarında önüne 12 basamağa tamamlamak için "0" sıfır ekmek.
Market sayım ve etiket basma üzerine uğraşıyorum. Ama çok acemiyim. Sadece hazır kodlardan alıntı ile
Merhaba, örnek uygulamanızı ekleyerek yeni konu açınız.
1 2 3 4 5 6 7 8 9