條碼 校正位 計算公式 PHP、T-SQL 程式_PHP教程

來源:互聯網
上載者:User
最近工作涉及計算條碼第 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 日常小記

http://www.bkjia.com/PHPjc/478484.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/478484.htmlTechArticle最近工作涉及計算條碼第 13位校正位批量更改, AI、條碼印表機、條碼掃描器等軟體內建產生校正位,網上搜尋也找了條碼產生器,但對...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.