declare.bas
来自「金卡(gold card),俗称84卡」· BAS 代码 · 共 187 行
BAS
187 行
Attribute VB_Name = "DECLARE"
Option Explicit
Option Base 0
Type MemEntry
Mem As String * 1
End Type
Declare Function ScardComand Lib "SCARD.DLL" (Handle As Long, ByVal Cmd As String, Cmdln As Long, ByVal Datin As String, DatInLn As Long, ByVal DatOut As String, DatoutLN As Long) As Long
Global Handle As Long
Global buffout As String * 2096
Global Buffin As String * 2096
Global Cmdln As Long
Global Datln As Long
Global Datlnout As Long
Global DatoutLN As Long
Global lotnr As String
Global serialNo As String
Global keyindex As Integer
Global Memmap As String * 32000
Global Memsize As Integer
Global theMem As MemEntry
Function conv(instring$, outstring$)
Dim readout$, readbuff$
Dim i As Integer
For i = 1 To 64
readout$ = Right$("0" + Hex$(Asc(Mid$(instring$, i, 1))), 2)
readbuff$ = readbuff$ + readout$
Next i
outstring$ = readbuff$
End Function
Function convbuff(instring$, outstring$, length)
Dim readout$, readbuff$
Dim i As Integer
For i = 1 To length
readout$ = Right$("0" + Hex$(Asc(Mid$(instring$, i, 1))), 2)
readbuff$ = readbuff$ + readout$
Next i
outstring$ = readbuff$
End Function
Function CONVnum(instring$, outstring$, length)
Dim readout$, readbuff$
Dim lo$, Hi$
Dim i As Integer
Dim a As Integer
Dim scrap As String * 1
On Error GoTo errhandle
For i = 1 To length
scrap = (Mid$(instring$, i, 1))
readout$ = Right$("0" + Hex$(Asc(Mid$(instring$, i, 1))), 2)
readout$ = Right$("0" + Hex$(Asc(Mid$(instring$, i, 1))), 2)
readbuff$ = readbuff$ + readout$
Next i
' swap the data backward os 104563 becomes 015436
For i = 1 To Len(readbuff$) Step 2
lo$ = Mid$(readbuff, i, 1)
Hi$ = Mid$(readbuff, i + 1, 1)
If lo$ = "F" Then lo$ = " "
If Hi$ = "F" Then Hi$ = " "
If lo$ = "A" Then lo$ = "*"
If Hi$ = "A" Then Hi$ = "*"
If lo$ = "B" Then lo$ = "#"
If Hi$ = "B" Then Hi$ = "#"
If lo$ = "C" Then lo$ = "P"
If Hi$ = "C" Then Hi$ = "P"
Mid$(readbuff, i, 1) = Hi$
Mid$(readbuff, i + 1, 1) = lo$
Next i
outstring$ = readbuff$
Exit Function
errhandle:
Resume Next
End Function
Function CONVSTR(instring$, outstring$, length)
Dim readout$, readbuff$
Dim lo, Hi As Integer
Dim i As Integer
Dim buff$
Dim temp As Integer
readbuff$ = ""
For i = 1 To length Step 2
lo = Val(Mid$(instring$, i, 1))
' USED AS *
If (Mid$(instring$, i, 1)) = "*" Then
lo = &HA
End If
' Used as #
If (Mid$(instring$, i, 1)) = "#" Then
lo = &HB
End If
' Used as P for Pasue
If (Mid$(instring$, i, 1)) = "P" Then
lo = &HC
End If
If i = length Then
Hi = &HF0
Else
' BLANK
If (Mid$(instring$, i + 1, 1)) = " " Then
Hi = &HF
Else
Hi = Val(Mid$(instring$, i + 1, 1)) * 16
End If
' USED AS *
If (Mid$(instring$, i + 1, 1)) = "*" Then
Hi = &HA0
End If
' Used as #
If (Mid$(instring$, i + 1, 1)) = "#" Then
Hi = &HB0
End If
' Used as P for Pasue
If (Mid$(instring$, i + 1, 1)) = "P" Then
Hi = &HC0
End If
End If
readout$ = Chr$(Hi + lo)
readbuff$ = readbuff$ + readout$
Next i
outstring$ = readbuff$
End Function
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?