- Samsung Galaxy Watch7 - kötelező kör
- Milyen okostelefont vegyek?
- Fotók, videók mobillal
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- iPhone topik
- Nagy aksival és erős hardverrel megjött Magyarországra a Poco X8 Pro és Pro Max
- Honor 200 - kétszázért pont jó lenne
- One mobilszolgáltatások
- Xiaomi 15T Pro - a téma nincs lezárva
- Xiaomi 17 - még mindig tart
Új hozzászólás Aktív témák
-
vilag
tag
válasz
sztanozs
#2519
üzenetére
A kollégám hozzájárulásával közzéteszem.
Röviden annyi a lényeg, hogy maga a vonalkód betűtípus nem elégséges arra, hogy visszaolvasható vonalkódot készítsünk, kell még bele egy indító- egy záró- és egy ellenőrző karakter is.
Az alábbi kódrészlet a magyar postai ragszámnak- (RL) és a nemzetközi ragszámnak (RR) megfelelő vonalkódot generál.
Figyelem! Az alábbi kóddal generált ragszám "képe" nem egyezik meg (hosszabb) a ragszámon lévő vonalkód képével, azonban beolvasáskor ugyan azt az értéket kapjuk!Public szov As String
Public h As Long
Private Sub CommandButton1_Click()
vkod = ""
ossz = 0
szov = Trim(InputBox("Vonalkód értéke:", "Kód bevitel"))
ActiveSheet.Cells(3, 3) = szov
If szov = "" Then GoTo vege
h = Len(szov)
If h > 100 Then GoTo vege
Dim vk(2, 100)
For i = 0 To h
If i = 0 Then
vk(1, i) = Chr(204)
vk(2, i) = 104
Else
vk(1, i) = Mid(szov, i, 1)
vk(2, i) = Asc(vk(1, i)) - 32
End If
If i = 0 Then k = 1 Else k = i
ossz = ossz + vk(2, i) * k
vkod = vkod + vk(1, i)
Next
eossz = ossz Mod 103
ActiveSheet.Cells(2, 2) = eossz
vkod = vkod + Chr(eossz + 32) + Chr(206)
ActiveSheet.Cells(2, 3) = vkod
vege:
vege = MsgBox("Konverzió vége!", vbOKOnly, "Vége")
End SubAz eltérésnek az az oka, hogy a vonalkódban rövidítést alkalmazni, azaz minden számpár helyére az értékének megfelelő karakter kerül. Pl.: a RL33... -nál a 33 helyére az "A" betű kódja kerül.
Az alábbi kóddal generált vonalkód képe megegyezik a valódi ragszámon megjelenő "képpel" azonban ez csak a magyar (RL) ragszámmal működik!
A nemzetközi ragszámhoz (RR) még ki kell derítenünk az algoritmust, aztán remélhetőleg azt is megcsináljuk.Public szov As String
Public h As Long
Private Sub CommandButton1_Click()
vkod = ""
ossz = 0
szov = Trim(InputBox("Vonalkód értéke:", "Kód bevitel"))
ActiveSheet.Cells(3, 3) = szov
If szov = "" Then GoTo vege
h = Len(szov)
If h > 100 Then GoTo vege
j = 1
Dim vk(2, 100)
For i = 0 To h
Select Case i
Case 0
vk(1, i) = Chr(204)
vk(2, i) = 104
j = i
Case 1 To 2
vk(1, i) = Mid(szov, i, 1)
If Asc(vk(1, i)) < 195 Then vk(2, i) = Asc(vk(1, i)) - 32 Else vk(2, i) = Asc(vk(1, i)) - 100
j = i
Case 3
j = i
vk(1, i) = Chr(199)
vk(2, i) = Asc(vk(1, i)) - 100
Case Else
If Application.WorksheetFunction.IsEven(i) = True Then
j = i - ((i - 4) / 2)
s2 = Val(Mid(szov, i - 1, 2))
If s2 < 95 Then vk(1, j) = Chr(s2 + 32) Else vk(1, j) = Chr(s2 + 100)
vk(2, j) = s2
End If
End Select
If j = 0 Then k = 1 Else k = j
If i <= 3 Or Application.WorksheetFunction.IsEven(i) = True Then
ossz = ossz + vk(2, j) * k
vkod = vkod + vk(1, j)
End If
Next
eossz = ossz Mod 103
ActiveSheet.Cells(2, 2) = eossz
vkod = vkod + Chr(eossz + 32) + Chr(206)
ActiveSheet.Cells(2, 3) = vkod
vege:
vege = MsgBox("Konverzió vége!", vbOKOnly, "Vége")
End SubSzerk.: Ahhoz, hogy valóban vonalkódot állítsunk elő a fentiek segítségével, ahhoz szükség van még egy Code 128 B betűtípusra is, melyet a googli segítségével könnyedén találhatunk.
Ha azt szeretnénk, hogy a kapott vonalkód más -olyan számítógépeken is megjelenjen, amelyeken az adott betűtípus nincs telepítve, akkor a betűtípust be kell ágyaznunk a fájlba, hogy vigye magával.
Ez csak ttf és otf betűtípusok esetében lehetséges és csak akkor, ha a betűtípus licence megengedi.Beágyazás: Office 2007 Word esetében: Fájl/Word beállításai/Mentés/Betűtípusok beágyazása fájlba.
Új hozzászólás Aktív témák
- E-roller topik
- Tavaszi hardvernyitány
- Samsung Galaxy Watch7 - kötelező kör
- Hálózati / IP kamera
- Milyen okostelefont vegyek?
- Milyen házat vegyek?
- Sweet.tv - internetes TV
- Nem fut az Intel grafikus vezérlőin az év egyik legjobban várt címe
- ASUS blog: Aludj nyugodtan!
- OLED TV topic
- További aktív témák...
- Ú, bontatlan, iPhone 16 Pro gyárilag kártya-független, apple világgaranciával
- FPS-gyilkos szörny I7 + RX 9060XT 16GB + prémium minden + garancia / számla
- Samgung Galaxy Tab S9 szürke 12GB/256GB (+ érintőceruza +bézs, +fekete tok +billentyűzet, touchpad)
- Macbook Air 13" - 2019 gyártás, 2 mag i5, 8/512GB, touch ID - garancia (14)
- Macbook Air 13" - 2019 gyártás, Intel i5, 8/128GB - garancia (118)
- Xiaomi Redmi 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- Samsung Galaxy A52 128GB, Kártyafüggetlen, 1 Év Garanciával
- Asus ROG Strix G731GT - 17.3"FHD IPS 120Hz - i7-9750H - 8GB - 512GB SSD - 1TB HDD - GTX 1650 - Win11
- MacBook Pro 13, 14, 15, 16, MacBook Air M1, M2 M3 M4 bill magyarosítás lézerrel / sapkacserével
- iPhone 16 pro 128GB Sivatagi Titán - 27% ÁFA (0395)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

