M1卡,一共16個扇區(0~15),每個扇區四個塊(0~3),第三塊存放密碼。,這樣每個塊能用3個快,每個塊可存盤16位元組資料,太少了,只能存盤8個漢字。現在想要把兩個或者三個塊連續讀寫。比如實作第4、5、6塊(也就是第1扇區三個資料塊)資料的寫入和讀出。怎么實作?
想法是:用LenB()回傳位元組長度,前16個位元組存放到第4塊,17~32個位元組存放到第5塊,后面的存放到第6塊。
下面的代碼不對額,但就是上面的意思。求大神幫助!
sector = 1【選擇1扇區】
st = rf_authentication(icdev, 0, sector)【對1扇區進行驗證,回傳值為0,驗證成功,二次開發包的函式】
If (st = 0) Then
'List1.AddItem ("rf_authentication ok")
Else
MsgBox "1扇區驗證失敗!", vbCritical
Exit Sub
End If
data1 = Trim(Text1.Text)【把Text1中的字符賦值給data1】
If LenB(data1) >= 0 And LenB(data1) <= 16 Then【當輸入位元組長度在0~16之間,則全部寫到塊4】
st = rf_write(icdev, 4, data1)
Else【否則把前16個位元組寫到塊5,后面的寫到塊6】
st = rf_write(icdev, 4, MidB(data1, 1, 16)) And st = rf_write(icdev, 5, MidB(data1, 17))
End If
uj5u.com熱心網友回復:
讀卡器與M1卡之間有完整的一套協議,你的想法極有可能是不能實作的。我的理解是M1卡本身就拒絕一次讀寫多個塊。M1卡雖然一點都不智能,但是也要比4428 4412之類的卡要復雜的多,不是想怎樣就能怎樣的,必須要遵循它的協議。
uj5u.com熱心網友回復:
資料長度的判斷要放在前面,然后逐塊認證、寫入。uj5u.com熱心網友回復:
樓主跟我是不是一個單位的喲,呵呵。感覺樓主開發的這個IC卡跟我現在開發的IC一模一樣也。(是否是深圳明華奧漢科技的IC卡,看那函式極像)
我是這樣操作的,一個扇區四個塊,只能寫一、二、三個塊,第四塊是密碼區不管它。
這IC的寫入跟讀出可能雙方要約定好(比如你寫了后對方讀的時候要按你寫的規則來讀,比如哪幾個區哪幾個塊寫的是什么資訊)。
兩種方法寫入:
1.首先檢查要寫入的字串的長度,如果超過8個字符就把超過的再接著寫入第二塊;
2.先不管字符的長度,約定好(比如第一扇區我只寫入公司名稱),我不管公司名稱的長度是多少(但是不要超過24個,因為一個扇區最多寫三個塊,一個塊8個漢字),我全部把它寫入三個扇區,前8個字符寫入1塊,中8個字符寫入2塊,剩下的寫入3塊——這種寫法,就是當所有字串不超過8個時,也不會出錯,只是后面兩個塊寫入的全部是空值而已。
采用怎樣的思路就看你的了。
uj5u.com熱心網友回復:
已經實作了,基本跟你的思路一樣,只不過我沒有判斷字符長度。我們卡里需要記錄三個資料,我把這三個資料分別寫入三個區,每個區有3個塊能用,這樣每個塊對應一個文本框,把1~16字符寫入第一個文本框,第17~32寫到第2個文本框,第33~48寫到第三個文本框,最后三個文本框連接顯示出來,當然那三個文本框運行時不可見。
uj5u.com熱心網友回復:
寫第一扇區的代碼:
st = rf_write(icdev, 4, Mid(data10, 1, 8))
st = rf_write(icdev, 5, Mid(data10, 9, 16))
st = rf_write(icdev, 6, Mid(data10, 17, 24))
uj5u.com熱心網友回復:
理解錯樓主的意思了開始以為樓主想一次寫入多個塊,原來樓主是想多個連續塊拼接一個資料串。
呵呵
uj5u.com熱心網友回復:
——————————————————————————————————————————————
對頭,就是這樣的,即使Mid(data10, 9, 16)=""、Mid(data10, 17, 24)=""(也就是data10這個字串只有8個或者<8個,上面這些陳述句不會出錯,寫入時也沒有問題,讀取時也讀出來的是空值)
請問樓主哪里人?
uj5u.com熱心網友回復:
山西的,詮釋自己一個人瞎琢磨,現在又有新問題了,看看我在論壇里開發語言/框架——VB——資料庫發的另一個帖子。【關于VB代碼實作資料庫的問題,有興趣進來看看】uj5u.com熱心網友回復:
理解錯樓主的意思了
開始以為樓主想一次寫入多個塊,原來樓主是想多個連續塊拼接一個資料串。
呵呵
uj5u.com熱心網友回復:
其實也可以寫的時候判斷字符的長度,但是比較麻煩,所以我采用了偷懶的辦法。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/131257.html
