程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 條形碼 校驗位 計算公式 PHP、T-SQL 程序

條形碼 校驗位 計算公式 PHP、T-SQL 程序

編輯:關於PHP編程

最近工作涉及計算條形碼第 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
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 www.2cto.com
ENA-13校驗碼的計算方法代碼位置序號代碼位置序號是指包括校驗碼在內的,由右至左的順序號(校驗碼的代碼位置序號為1)。 計算步驟校驗碼的計算步驟如下:a.從代碼位置序號2開始,所有偶數位的數字代碼求和。b.將步驟a的和乘以3。c.從代碼位置序號3開始,所有奇數位的數字代碼求和。d.將步驟b與步驟c的結果相加。e.用大於或等於步驟d所得結果且為10最小整數倍的數減去步驟d所得結果,其差即為所求校驗碼的值。示例:代碼690123456789X1校驗碼的計算見表1。 表1 校驗碼的計算方法步 驟 舉 例 說 明 1.自右向左順序編號 位置序號 13 12 11 10 9 8 7 6 5 4 3 2 1                        代碼 6 9 0 1 2 3 4 5 6 7 8 9 X 2.從序號2開始求出偶數位上數字之和① 9+7+5+3+1+9=34      ① 3. ①*3=② 34×3=102         ② 4.從序號3開始求出奇數位上數字之和③ 8+6+4+2+0+6=26      ③ 5. ②+③=④ 102+26=128        ④ 6.用大於或等於結果④且為10最小整數倍的數減去④,其差即為所求校驗碼的值 130-128=2校驗碼X1=2

摘自 Tao2581 日常小記

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved