条形码c程序
1、C语言编写条形码识别
看这么多天没人答就知道难了吧,要读图内条形码的话就必须要知道图片在内存里的存储形式,而不同格式图片的存法是不一样的,要写这个程序就要求必须懂大部分图片的存储格式,条形码的格式,图片文件还有大有小,条形码也是有大有小,这么多可变条件加起来,就不容易了……
2、C语言,扫描条码(就是输入一串字符,不要想的太难)
首先要建立一个结构:
typedef struct
{
char code[50];
int count;
}USERCODE;
然后建立一个数组:
USERCODE myarray[MAX_CODE]; //MAX可以设为条码种类数。
然后就维护回这个数组好了。
首先字符答串和count初始化。
接着编写查找功能。
比较简单的法子是做一个循环,一个一个的比较。
for(int i=0;i<MAX_CODE;i++)
{
if(...)//myarray[i].code和输入的字符串比较,如果相等就给myarray[i].count++
}
最后是查询功能,还是用循环方式,比较关键字符串,条件成立就printf("%d",myarray[i].count)
当然查找和查询功能可以采用一些算法,如果你是按照顺序填充数组,就可以采用对半法。如果数组不是很大,不超过100,简单循环也没什么问题。
3、c语言条形码的输入
一、条形码的读取
用过键盘口式的扫条码工具的朋友就知道,它就如同在键盘上按下数字键一样,基本不需任何编程和处理。但如果你使用的是其它接口的话,可能你就要为该设备编写通讯代码了。以下有一段简单的25针串口的条码读取器通讯代码。
Option Explicit
Dim sData As String
Private Sub Form_Load()
With MSComm1
.CommPort = 3 '设为COM3,试运行的系统而定,你可提供一个Combox让用户选择。
.PortOpen = True '打开通讯端口
End With
End Sub
Private Sub MSComm1_OnComm()
Dim EndPos As Integer
Select Case MSComm1.CommEvent
Case comEvReceive '当有数据传送过来时
sData = sData & Trim(MSComm1.Input)
'检索回车,通常读卡机每组数据结尾都返回一个回车作为结束符
EndPos = InStr(1, sData, Chr(13))
If EndPos = 0 Then '如果未结束就继续努力
Else '读完一组。
lblBarCode.Caption = sData '显示一组条形码
With lstBarCode
.AddItem Mid(sData, 1, EndPos - 1) '添加一组条形码到列表
End With
sData = "" '清空
End If
End Select
End Sub
Private Sub cmdEnd_Click()
MSComm1.PortOpen = False '关闭端口
End
End Sub
二、条形码的生成
看完以上关于条码读取的代码是否觉得很容易呢?对,在VB上编程本来就不难。以下关于条形码生成的代码也是很容易理解,只需使用一个OFFICE的附带的BarCode控件就可以轻松打印出11种不同标准的条形码,足以满足我们的要求。想起我书架上的一本书中的一篇用Turbo C编写条形码打印程序文章,长篇大论,那时不知看了n天,打了n小时字结果也不尽人意,现在真是幸福多了:)。废话说完,得回归正题。且看条形码生成的代码及有关说明。
源代码主要由两个窗体(frmMain主窗体和frmOption条码设置窗体)和两个模块组成(modGetScreen.bas、SysDLG32.bas)。考虑到篇幅,这里只列出部分较为关键的代码。
新建一个标准工程,添加一个名为(Microsoft Access BarCode Control9)的条形码部件,并添加一个条码控件到窗口,并将窗口改名为frmMain,如图所示。由于控件比较多,这里不便细说,详细内容请看源代码。
模块modGetScreen.bas代码如下:
Option Explicit
'声明BitBlt、GetDesktopWindow、GetWindowDC、ReleaseDC这几个API函数略
Public RegUser As Boolean
Sub GetObjImage1(Obj As Object, OwnerForm As PictureBox, Picture1 As PictureBox)
'hDC
Dim hWndDesk As Long
Dim hDCDesk As Long
'区域表达变量
Dim x As Long
Dim y As Long
Dim w As Long
Dim h As Long
x = Obj.Left Screen.TwipsPerPixelX
y = Obj.Top Screen.TwipsPerPixelY
w = Obj.Width Screen.TwipsPerPixelX
h = Obj.Height Screen.TwipsPerPixelY
hDCDesk = OwnerForm.hdc
'取出图像
Call BitBlt(Picture1.hdc, 0, 0, w, h, hDCDesk, x, y, vbSrcCopy)
Call ReleaseDC(hWndDesk, hDCDesk)
End Sub
主窗体frmMain.frm部分代码如下:
Private Sub cmdPrint_Click()
'生成条形码图像
Dim r As Long, i As Integer, t As String,cfile As String '临时变量
t = BarCode
For i = 0 To Val(Times) - 1
BarCode1.Value = BarCode + i
DoEvents
Picture1.Refresh
GetObjImage1 BarCode1, Conel, Picture1
If RegUser = False Then '如果未注册添加MASK标记
Picture1.PaintPicture Picture2.Picture, 300, 300
End If
If Dir(SavePath, vbDirectory) = "" Then MkDir SavePath
SavePath = SavePath & IIf(Right(SavePath, 1) <> "", "", "")
cfile = SavePath & BarCode1.Value & ".bmp"
SavePicture Picture1.Image, cfile '将条形码保存为图像文件以便打印
Next
BarCode = t
End Sub
条形码设置窗体frmOption.frm代码如下:
Option Explicit
'条形码设置模块
Private Sub cboBig_Click()
BarCode1.Style = cboBig.ListIndex '改变标准
End Sub
Private Sub cboDirection_Click()
BarCode1.Direction = cboDirection.ListIndex '改变方向
End Sub
Private Sub cboLine_Click()
BarCode1.LineWeight = cboLine.ListIndex '改变线宽
End Sub
Private Sub cboSmall_Click()
BarCode1.SubStyle = cboSmall.ListIndex '改变样式
End Sub
Private Sub Check1_Click()
BarCode1.ShowData = Check1.Value '是否显示数据
End Sub
Private Sub cmdChange_Click()
'设置长、宽大小
BarWidth = BarCode1.Height
BarHeight = BarCode1.Width
cmdRefresh_Click
End Sub
Private Sub cmdOK_Click()
'传送条形码设定到主界面
With frmMain.BarCode1
.LineWeight = BarCode1.LineWeight
.Style = BarCode1.Style
.SubStyle = BarCode1.SubStyle
.Direction = BarCode1.Direction
.Width = BarCode1.Width
.Height = BarCode1.Height
.ShowData = BarCode1.ShowData
Me.Hide
End With
With frmMain
.Picture1.Width = .BarCode1.Width
.Picture1.Height = .BarCode1.Height
.Conel.Width = .BarCode1.Width
.Conel.Height = .BarCode1.Height
End With
End Sub
Private Sub cmdRefresh_Click()
BarCode1.Width = BarWidth
BarCode1.Height = BarHeight
End Sub
Private Sub Form_Load()
LoadBarInfo
BarWidth = BarCode1.Width
BarHeight = BarCode1.Height
End Sub
Sub LoadBarInfo() '初始化选项
LoadBigClass cboBig
LoadSmallClass cboSmall
LoadLineSize cboLine
LoadDirection cboDirection
End Sub
Sub LoadBigClass(cbo As ComboBox) '条码标准
With cbo
.AddItem "UPC-A"
.AddItem "UPC-E"
.AddItem "EAN-13"
.AddItem "EAN-8"
.AddItem "Case Code"
.AddItem "Codabar (NW-T)"
.AddItem "Code-39"
.AddItem "Code-128"
.AddItem "U.S. Postnet"
.AddItem "U.S. Postal FIM"
.AddItem "JP Post"
.ListIndex = 2
End With
End Sub
Sub LoadSmallClass(cbo As ComboBox) '条码样式
With cbo
.AddItem "Standard"
.AddItem "2-Digit Supplement"
.AddItem "5-Digit Supplement"
.AddItem "POS Case Code"
.ListIndex = 0
End With
End Sub
许多人在编写数据库应用程序时,都想要加上条形码功能加强工作效率,尤其是销售管理,图书馆管理这类流量大的应用软件,但由于条形码技术难以掌握、标谁又多以及过去的技术种种原因,使得许多人望而却步。本文介绍的一套简单实用的条形码解决方法,希望能帮助各位完善软件系统的功能。
4、怎样用C语言做一个条形码
使用C语言做条形码可以按照以下流程:
1 查找条形码生成规则,或者直接找C语言的开源代码,制作封装字符串转条形码的接口函数;
2 读入要转换的数据;
3 将要转换的数据,通过1中的函数接口,转为图形点阵值。由于条形码只有黑白两色,所以这里可以用0,1两种值用矩阵表示;
4 根据编译器,启动图形界面,初始化图形区域;
5 在图形区域的空间内,按照0 1值,在对应点上上色,其中0上白色,1上黑色。
至此,条形码显示成功。
5、条码生成C语言编程
我可以给你个思路,第一步去找到你要的二维码的规范,第二步把数据按照规范转化为二维数组,第三步,把二维数组按照图形文件的规范用二进制储存为图片
参考资料:http://blog.csdn.net/dekko/article/details/6121899
http://blog.csdn.net/dekko/article/details/6122239
http://blog.csdn.net/ryfdizuo/article/details/41250775
http://blog.csdn.net/carson2005/article/details/7871238
6、c语言!!!怎样用char来编13位的barcode啊?
不知道你的程序需求是什么
是否是输入9300605048577
输出 930-060504-857-7?
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
char szBuf[128];
while (1)
{
int Count = 0;
printf("Enter barcode:");
if (scanf("%s", szBuf) <= 0)
break;
printf("Barcode is ");
for (int i = 0; '\0' != szBuf[i]; i++)
{
if (szBuf[i] >= '0' && szBuf[i] <= '9')
{
putchar(szBuf[i]);
Count++;
if (3 == Count || 9 == Count || 12 == Count)
{
putchar('-');
}
}
}
putchar('\n');
}
return 0;
}
7、如何申请商品条形码
厂商注册商品条码(厂商识别代码)办事步骤如下:
1 受理部门
各地市物品编码中心(质监局)
2 部门职责
负责本地区物品编码的管理工作
3 办事依据
国家质检总局第76号令,《商品条码管理办法》
4 条件
依法取得企业法人营业执照或营业执照的生产者、销售者可根据自己的经营需要,申请注册厂商识别代码。
5 企业厂商应提交的注册材料
a. 申请人公司的营业执照复印件2份。
b. 汇款凭证的复印件2份。
c. 填写《中国商品条形厂商识别代码注册申请书》二份并加盖公章。
d. 进出口证明并加盖公章。
说明:《中国商品条码系统成员注册登记表》中“企业类别”、“经济类型代码”、“国民经济行业分类代码”、“注册地行政区划代码”四项内容的填写,请参照《商品条码分类与代码查询手册》,不知如何填写时,请不填。
办理时间: 星期一至星期五 上午:8:00—12:00 下午:2:00—5:00 应用范围:所有零售商品,货物配送;供应链营理领域。
6 登记程序
填表申请——〉提交证件、证明——〉审查审批——〉赋码。
7 办事时限和办事结果
接到申请后,编码分支机构在5个工作日内完成初审。
对初审合格的,编码分支机构签署意见并报送编码中心审批;对初审合格的申请资料,编码中心会自收到申请人交纳的有关费用之日起5个工作日内完成审核程序。对符合要求的,编码中心向申请人核准注册厂商识别代码,并发给《中国商品条码系统成员证书》,取得中国商品条码系统成员资格,对其厂商识别代码、商品代码和相应的商品条码享有专用权。对不符合规定要求的,由编码中心将申请资料退回编码分支机构并说明理由。
对初审不合格的,编码分支机构应当将申请资料退给申请人并说明理由。
8 收费标准及依据
中国物品编码中心按照国家物价局和财政部[1991]价费字270号文件以及国家计划委员会和财政部计价[1997]2500号文件规定,收取申请注册厂商识别代码的费用。
企业注册EAN/UCC-8商品条码时,应向编码中心交纳一次性加入费400元。以后再申请EAN/UCC-8商品条码时,不再另收此项费用。
企业注册位置码(GLN)时,应先成为系统成员。系统成员申请位置码(GLN)不再收取费用。
按照国家物价局和财政部[1991]价费字270号文件以及国家计划委员会和财政部计价费[1997]2500号文件的规定,系统成员按表格所示交纳续展费用。
申请费用:
单位类型 两年系统维护费 一次性加入费
A.单个生产企业 2000 1000
B.集团公司 3200 1000
C.进出口企业 6200 1000
备注:如某些城市深圳等还需另收登报费990元,故费用因地不一。
qq859845730
8、产品的条码是怎么生成的,哪位朋友能告诉我详细的步骤!
条码是在当地物品编码中心机构登记,在打印厂打印的。如果你想申请一个条码,你可以在当地物品编码中心机构登记,然后在中心提供条码的记录系统中,可以生成一个代码和条码的每一个对应于每一个产品。
条形码申请程序:
1.申请人可到所在地的编码分支机构办理申请厂商识别代码手续,并提供企业法人营业执照或营业执照及其复印件三套。(分别由中国物品编码中心、申请人所在地的编码分支机构和申请人所在企业内部存档保留)
2.填写《中国商品条码系统成员注册登记表》 ,可直接在 ANCC 在线填写注册登记表。(备注:如在网上填写申请表还需打印、盖章、然后提交到当地编码分支机构)
3.集团公司请填集团公司下属分公司基本信息表 。
4.申请人的申请资料经所在地的编码分支机构 初审后,符合条件的资料,由编码分支机构签署意见并报送到中国物品编码中心审批。
5.编码中心收到初审合格的申请资料及申请人交纳的费用后,对确实符合规定要求的,编码中心向申请人核准注册厂商识别代码,完成审批程序。
6.申请单位收到中国商品条码系统成员证书,申请结束。
申请条件:
1.条形码申请必须要有工商行政管理部门颁发的营业执照;
2.条形码申请必须要有自己注册的商标;
3.条形码申请必须要有一定支付能力,可以交纳会费;
4.凡生产下列商品的企业适宜申请。如:食品,饮料,卷烟,土特产,化妆品,牙膏等日用品;胶卷、空白磁带,生活用纸,玩具,钟表等日杂品。总之凡是规则包装的零售商品原则上都可采用条码标记。
条形码校验码公式:
首先,把条形码从右往左依次编序号为“1,2,3,4……”从序号二开始把所有偶数序号位上的数相加求和,用求出的和乘3,再从序号三开始把所有奇数序号上的数相加求和,用求出的和加上刚才偶数序号上的数,然后得出和。再用10减去这个和的个位数,就得出校验码。
举个例子:此条形码为:977167121601X(X为校验码)。
1.1+6+2+7+1+7=24
2.24×3=72
3.0+1+1+6+7+9=24
4.72+24=96
5.10-6=4
所以最后校验码X=4。此条形码为9771671216014。
如果第5步的结果个位为10,校验码是0;也就是说第4步个位为0的情况.
9、教会你申请商品条码
1、是由一组规则排列的条、空及其对应代码组成,表示商品代码的条码符号, 包括零售商品、储运包装商品、物流单元、参与方位置等等的代码与条码标识。
2、厂商识别代码是指国际通用的商品标识系统中表示厂商的唯一代码。
3、厂商识别代码由 7 ~ 10 位数字组成,我国由中国物品编码中心负责分配和管理。
4、数字的代码结构由厂商识别代码、商品项目代码、校验码三部分组成校验码的计算步骤如下:
a)从代码位置序号 2 开始所有偶数位的数字代码求和。
b)将步骤 a) 的和乘以 3。
c)从代码位置序号 3 开始,所有奇数位的数字代码求和。
d)将步骤 b) 与步骤 c) 的结果相加。
e)用 10 减去步骤 d) 所得结果的个位数作为校验码(个位数为 0, 校验码为 0)。 用大于或等于步骤 d) 所得结果且为 10 的整数倍的最小数减去步骤 d) 所 的结果,其差即为所求校验码的值。
申请条形码