c语言条形码函数 条形码函数代码

C语言编写条形码识别

使用C语言做条形码可以按照以下流程:

创新互联公司是一家专注于成都网站制作、成都网站设计、外贸营销网站建设与策划设计,临川网站建设哪家好?创新互联公司做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:临川等地区。临川做网站价格咨询:13518219792

1 查找条形码生成规则,或者直接找C语言的开源代码,制作封装字符串转条形码的接口函数;

2 读入要转换的数据;

3 将要转换的数据,通过1中的函数接口,转为图形点阵值。由于条形码只有黑白两色,所以这里可以用0,1两种值用矩阵表示;

4 根据编译器,启动图形界面,初始化图形区域;

5 在图形区域的空间内,按照0 1值,在对应点上上色,其中0上白色,1上黑色。

至此,条形码显示成功。

用c语言编写函数,实现“计算商品条形码校验位

没有必要了吧,手机随便下个条码软件就行了,再不行买个专业扫码枪

怎样用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

输入一个条码判断是不是教材教材的条码规则为长度13位前缀9787用c语言编程求解答

按照问题,程序应包含以下功能:

一、条码字符串输入及验证。

二、前缀字符串和条码字符串比较,方法很多:

1、可遍历字符串单字符比较。

2、将条码字符串第5个字符置0,然后用strcmp函数比较。

3、在输入条码字符串同时验证前4位的输入。

下面用两种方式代码演示:

#includestdio.h

#includestring.h

#define M 13//条码最大位数

#define N 4//规则前缀位数

#define NS "9787"//前缀,位数必须与N对应

int inputAndCheck(char str1[],char str2[]);//方法一:输入的同时比较(自带位数限制)。是返回1,不是返回0

int checkStr(char str1[],char str2[]);//方法二:输入后比较用字符串函数比较(自带位数检测,小于M位返回0,多余13位截取),是返回1,不是返回0

int main()

{

char s1[N+1]=NS,s2[M+1]={0};

printf("方法一:输入同时比较\n");

if(inputAndCheck(s1,s2))printf("前%d位字符%s是教材条码\n",M,s2);

else printf("前%d位字符%s不是是教材条码\n",M,s2);

printf("\n方法二:输入后比较用字符串函数比较\n");

memset(s2,0,sizeof(char)*(M+1));//同一个变量用于两种方法演示,这里清空一下,实际代码可删除!!

printf("演示用的scanf函数输入,请不要超出%d位:",M),scanf("%s",s2);//注意:checkStr函数会检测参数长度,但这里用scanf输入,其本身不能数组越界

if(checkStr(s1,s2))printf("前%d位字符%s是教材条码\n",M,s2);

else printf("前%d位字符%s不是是教材条码\n",M,s2);

return 0;

}

int checkStr(char str1[],char str2[])

{

char cSave;

int flag=0;

if(strlen(str2)M) return flag;

cSave=str2[N];

str2[N]=0;

flag=strcmp(str1,str2);

str2[N]=cSave;

str2[M]=0;//多余截取

return !flag;

}

int inputAndCheck(char str1[],char str2[])

{

int i=0,flag=1;

printf("输入13位(多余位数将被忽略):");

while(iM)

{

  str2[i]=getchar();

  if(str2[i]=='\n') continue;//位数不足,跳过回车键继续输入

  if(iN str1[i]!=str2[i]) flag=0;

  i++;

}

str2[M]=0;

while(getchar()!='\n');//清空输入缓存,避免干扰后续字符串输入

return flag;

}


名称栏目:c语言条形码函数 条形码函数代码
浏览路径:http://azwzsj.com/article/dodpdcj.html