Hirdetés
- Olcsó vs. drága egér: melyiknél érzed meg igazán a különbséget?
- Itt a Microsoft szörnyprocesszora, ami 132 maggal tarolhatja le a felhőt
- Az Inteltől – nem csak az Intelnek
- Alice Recoque-kal mutatná meg Európa hogyan kell szuperszámítógépet építeni
- Pokolian jól elrejtette egyik leghasznosabb hardverét az Intel
- Itt a Microsoft szörnyprocesszora, ami 132 maggal tarolhatja le a felhőt
- Vezetékes FEJhallgatók
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
- Arrow Lake az asztalon: Core Ultra 9 285K
- Samsung LCD és LED TV-k
- Számos VGA kihalhat a memóriapánik miatt
- Pokolian jól elrejtette egyik leghasznosabb hardverét az Intel
- Melyik tápegységet vegyem?
- Az Inteltől – nem csak az Intelnek
- Ami Kínában OnePlus Pad Pro, az errefelé mégis csak Pad 2 lett
Ú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
- Autós topik látogatók beszélgetős, offolós topikja
- Mibe tegyem a megtakarításaimat?
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Az AI miatt drágulnak a mobilok is
- LEGO klub
- Itt a Microsoft szörnyprocesszora, ami 132 maggal tarolhatja le a felhőt
- Vezetékes FEJhallgatók
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
- Linux kezdőknek
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- További aktív témák...
- Gamer Pc - Ryzen 7 3800X, RTX 3060ti, 16gb RAM
- Acer Nitro 5 Gamer Laptop - 15,6 FHD IPS 144hz/ i7 10750H/ 32GB RAM/ RTX 3050Ti/1,5TB SSD
- Lenovo Thinkpad T14 G3 Golyóálló Üzleti Érintős Laptop 14" -50% i5-1250P 12Mag 16GB/512GB FHD+
- Samsung Odyssey G9 49" Oled 240Hz G-Sync, FreeSync VRR Gamer monitor Eladó
- Eladó LG OLED G4 55'' (OLED55G48LW) 3 ÉV GARANCIA
- Hibátlan, megkímélt! II Lenovo ThinkPad T540p II i7-4800MQ I GT 730M I 8GB I 240 GB I 15,6" FHD
- PlayStation 5 FAT Lemezes + kontroller 6 hó garancia, számlával!
- Azonnali készpénzes nVidia RTX 5000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
- HIBÁTLAN iPhone 12 mini 64GB Green -1 ÉV GARANCIA - Kártyafüggetlen, MS3452,100% Akksi
- 24 GB-os RTX 3090 OEM
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest


