关于网友提出的“ 将下面vb代码转换成delphi代码”问题疑问,本网通过在网上对“ 将下面vb代码转换成delphi代码”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 将下面vb代码转换成delphi代码描述:
Sub ReadCard()
j = rf_request(0, mode, p)
If (j = 0) Then
j = 1
j = rf_anticoll(0, 4, CardSN, plen)
If (j = 0) Then
j = 1
j = rf_select(0, CardSN, plen, pSize)
mode = &H60
End If
If (j = 0) Then
j = 1
j = rf_M1_authentication2(0, mode, CByte("0"), Key(0))
newone = 1
End If
If (j = 0) Then
j = 1
j = rf_M1_read(0, CByte("0"), pdata(0), PLen1)
j = rf_M1_read(0, CByte("1"), PData1(0), PLen1)
Else
For k = 0 To 5
Key(k) = PKey2(k)
Next k
ReadCard
End If
If (j = 0) Then
If (CHK = 0) Then
If (PData1(0) = &H0) Then
j = rf_beep(0, 20)
j = rf_light(0, 2)
CHK = 1
ReadOK
Else
j = MsgBox("该卡不是用户卡", vbInformation, "添加用户")
End If
Else
j = rf_light(0, 1)
End If
End If
Else
j = rf_light(0, 1)
setobj (False)
Label7.Caption = ""
Label8.Caption = ""
Label9.Caption = ""
Label10.Caption = ""
Text1.Text = 0
CHK = 0
For k = 0 To 5
Key(k) = PKey(k)
Next k
End If
End Sub
Sub ReadOK()
PIN = Right("00" & Hex(PData1(4)), 2) & Right("00" & Hex(PData1(5)), 2) & Right("00" & Hex(PData1(6)), 2) & Right("00" & Hex(PData1(7)), 2) & Right("00" & Hex(PData1(8)), 2)
Label7.Caption = ""
If (PData1(11) = &H0) Then
If (PData1(10) = getcomputerid) Then
For k1 = 0 To 3
Label7.Caption = Label7.Caption & Hex(pdata(k1))
Next k1
Label8.Caption = GetUserName(Label7.Caption)
Label9.Caption = GetPumpName(Right("00" & Hex(PData1(1)), 2) & Right("00" & Hex(PData1(2)), 2) & Right("00" & Hex(PData1(3)), 2))
Label10.Caption = CLng("&h" & Right("00" & Hex(PData1(9)), 2) & Right("00" & Hex(PData1(8)), 2) & Right("00" & Hex(PData1(7)), 2) & Right("00" & Hex(PData1(6)), 2)) / 10
setobj (True)
Else
j = MsgBox("对不起,该卡属于其他终端", vbInformation, "充值")
End If
Else
j = MsgBox("对不起,卡片出错,请到控制器重新刷卡", vbInformation, "充值")
End If
'If (pdata1(0) = &H22) Then
' setcombo
'End If
End Sub
解决方案1:
帮顶了
UP!
还有写出厂方提供的函数的原型
解决方案3: 一段读Mifare 1卡数据的程序
不过,如果你不把函数和变量声明写出来,很难转成delphi的