条形码 校验位 计算公式 PHP、T-SQL 程序
最近工作涉及计算条形码第 13位校验位批量更改, AI、条码打印机、条码扫描器等软件内置生成校验位,网上搜索也找了条码生成器,但对我们来说不够灵活,编写了一个小程序 计算校验位
	
OK 先看看PHP版的,跟网上搜索到的简单了不少
	
	function en13($code) 
	{    
	    $tmp1=0; 
	    $tmp2=0; 
	    for($i=0;$i<12;$i++) 
	    { 
	        if($i % 2==0) 
	        $tmp1+=substr($code,$i,1);       
	        else 
	        $tmp2+=substr($code,$i,1);       
	    }        
	    return (10-($tmp2*3+$tmp1)%10)%10; 
	} 
	 
	//测试  www.2cto.com
	$t="6939762911740"; 
	echo en13($t); 
	function en13($code)
	{ 
	 $tmp1=0;
	 $tmp2=0;
	 for($i=0;$i<12;$i++)
	 {
	  if($i % 2==0)
	  $tmp1+=substr($code,$i,1);  
	  else
	  $tmp2+=substr($code,$i,1);  
	 }  
	 return (10-($tmp2*3+$tmp1)%10)%10;
	}
	//测试
	$t="6939762911740";
	echo en13($t);
	还有要把MSSQL数据库中的数据批量更新 就不写程序了 直接在sql企业管理器里更新
T-SQl代码
	
	declare @str as varchar(15) 
	declare @tmp as varchar(30) 
	declare @t1 as int 
	declare @t2 as int 
	declare @i int  
	set @t1=0 
	set @t2=0 
	set @str='6939762911740' 
	set @i=1  
	while @i<=12  
	begin  
	    if @i % 2=0  
	        begin 
	            set @t1=@t1+substring(@str,@i,1) 
	        end 
	    else 
	        begin 
	            set @t2=@t2+substring(@str,@i,1) 
	        end  
	    set @i=@i+1  
	     
	end 
	 
	set @tmp=(10-(@t1*3+@t2)%10)%10 
	 
	--end function  
	SELECT @t1 ,@t2,@tmp 
	declare @str as varchar(15)
	declare @tmp as varchar(30)
	declare @t1 as int
	
相关新闻>>
- 发表评论
- 
				
- 最新评论 进入详细评论页>>





![smarty局部缓存技术[源码分析]](/uploads/allimg/130827/11214T939-0-lp.jpg)