⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eancreate.txt

📁 EAN条码字体的解码算法 经常发现用PB的开发人员在问为什么用EAN的字体打出来的条码扫描枪无法扫描 其实受EAN的编码规格的限制
💻 TXT
字号:
EAN条码字体的解码算法

经常发现用PB的开发人员在问为什么用EAN的字体打出来的条码扫描枪无法扫描
其实受EAN的编码规格的限制,EAN的字体是不能直接使用的,EAN13的编码规格就不
多说了,下面给出两个函数可把条码转换为EAN字体可识别的字符串(分别对应EAN13和EAN8两种编码)
对应的字体与PB的DEMO可到下面的地址下载:



http://kivens.nease.net/ean.rar




function string f_GetEAN13FontStr (string as_ean13code);//ENA13
//by kivens.jiang(kivens@china.com) 2005-03-01
string ls_LeftBlankStr="#$%&'()*+,"
string ls_LeftCode[9]={'112122','112212','112221','121122','122112','122211','121212','121221','122121'}
string ls_LeftEanStr='0123456789ABCDEFGHIJ'
string ls_RightEanStr='abcdefghij'
string ls_SplitStr='!'
string ls_MidStr='-'
if len(as_EAN13Code)<>13 then return ''
Integer i,li_index,li_LeftCode,li_Temp_Code
string ls_Result
li_LeftCode=Integer(Left(as_EAN13Code,1))
ls_Result=Mid(ls_LeftBlankStr,li_LeftCode + 1,1)



for i=2 to 13
   li_Temp_Code=Integer(mid(as_EAN13Code,i,1)) + 1
   if i>7 then
      ls_Result=ls_Result+mid(ls_RightEanStr,li_Temp_Code,1)
   else
      ls_Result=ls_Result+mid(ls_LeftEanStr,li_Temp_Code + (Integer(Mid(ls_LeftCode[li_LeftCode],i - 1,1)) - 1)*10,1)
   end if
next



ls_Result=Left(ls_Result,1)+ls_SplitStr+Mid(ls_Result,2,6)+ls_MidStr+Right(ls_Result,6)+ls_SplitStr
return ls_Result
end function 




function string f_GetEAN8FontStr (string as_ean13code);//EAN8
//by kivens.jiang(kivens@china.com) 2005-03-01
string ls_LeftBlankStr="#$%&'()*+,"
string ls_LeftCode[9]={'112122','112212','112221','121122','122112','122211','121212','121221','122121'}
string ls_LeftEanStr='0123456789ABCDEFGHIJ'
string ls_RightEanStr='abcdefghij'
string ls_SplitStr='!'
string ls_MidStr='-'
if len(as_EAN13Code)<>8 then return ''
Integer i,li_index,li_LeftCode,li_Temp_Code
string ls_Result
li_LeftCode=Integer(Left(as_EAN13Code,1))



for i=1 to 8
   li_Temp_Code=Integer(mid(as_EAN13Code,i,1)) + 1
   if i>4 then
      ls_Result=ls_Result+mid(ls_RightEanStr,li_Temp_Code,1)
   else
      ls_Result=ls_Result+mid(ls_LeftEanStr,li_Temp_Code + (Integer(Mid(ls_LeftCode[li_LeftCode],i - 1,1)) - 1)*10,1)
   end if
next
ls_Result=ls_SplitStr+Mid(ls_Result,1,4)+ls_MidStr+Right(ls_Result,4)+ls_SplitStr
return ls_Result
end function


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -