这是一个IC卡与计算机通讯的程序,卡可储存数据单元为FF个区域,也即256个字节。可是在我向卡的第8个字节开始写数据“000823DF"时,前面的"000823"写入正确,可是到"DF"时,却写入了错误的数据,请问各位大侠,是何缘故?急急急!答对了再加分!
Public Function WriteData(Address As Integer, Data As String) As String
If CheckPass() = 0 Then
Dim ErrVal As Integer
Dim Info(&HFF) As Byte
If ICInit() = True Then
For i = 0 To Int(Len(Data) / 2) - 1
Info(i) = Val("&H" + Mid(Data, i * 2 + 1, 2))
Next
For j = Address To Address + Len(Data) / 2 - 1
st = swr_4442(icdev, j, 1, ChrB(Info(j - Address) - &H0))'向卡的相应单元中写数据,也即从Address开始写入一个字节数据
Next
If st = 0 Then
PError = 0
Else
PError = -2
WriteData = PError
End If
End If
End If
st = ic_exit(icdev)
End FunctionPrivate sub command1_click ()
X=WriteData(8,"000823DF") ‘ 向卡的第8个字节开始依次写入000823DF数据
end sub
Public Function WriteData(Address As Integer, Data As String) As String
If CheckPass() = 0 Then
Dim ErrVal As Integer
Dim Info(&HFF) As Byte
If ICInit() = True Then
For i = 0 To Int(Len(Data) / 2) - 1
Info(i) = Val("&H" + Mid(Data, i * 2 + 1, 2))
Next
For j = Address To Address + Len(Data) / 2 - 1
st = swr_4442(icdev, j, 1, ChrB(Info(j - Address) - &H0))'向卡的相应单元中写数据,也即从Address开始写入一个字节数据
Next
If st = 0 Then
PError = 0
Else
PError = -2
WriteData = PError
End If
End If
End If
st = ic_exit(icdev)
End FunctionPrivate sub command1_click ()
X=WriteData(8,"000823DF") ‘ 向卡的第8个字节开始依次写入000823DF数据
end sub
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货