1. 怎么指定一个文件的中的几个字节读取出来? 比如 第2第3个字节读取出来, 再比如 第2个字节只读后4位
2. 下面一段代码我读了第15个字节的内容到变量a,可是print出来为什么是10进制的呢?
Dim a As Byte
Dim lngFileLen As Long, i As Long, bytB() As Byte
lngFileLen = FileLen(App.Path & "\20080212.BIL")
Debug.Print lngFileLen
Open App.Path & "\20080212.BIL" For Binary As 1
Get 1, 15, a
Debug.Print a
Close
2. 下面一段代码我读了第15个字节的内容到变量a,可是print出来为什么是10进制的呢?
Dim a As Byte
Dim lngFileLen As Long, i As Long, bytB() As Byte
lngFileLen = FileLen(App.Path & "\20080212.BIL")
Debug.Print lngFileLen
Open App.Path & "\20080212.BIL" For Binary As 1
Get 1, 15, a
Debug.Print a
Close
2.如果要读第2个字节
Get #1, 2, a
3.如果要读第3个字节
Get #1, 3, a
4.取得前四位与后四位
A的后四位:a mod 16
A的前四位:a/16
5.返回用16进程表示
hex(a)
Byte数据类型属无符号整数,1字节(8位)
其值的范围在0-255间Dim a As Byte
Dim lngFileLen As Long, i As Long, bytB() As Byte
lngFileLen = FileLen(App.Path & "\20080212.BIL")
Debug.Print lngFileLen
Open App.Path & "\20080212.BIL" For Binary As 1
Get 1, 15, a
Debug.Print Hex(a)
Close
Get 1, 1, a 这句只能读1个字节 可不可以直接读连接的两个字节呢?第4个问题
可以讲讲吗? 为什么 除16取余就能 取8位的后4位呢? 没想明白
1.请确认你的控件的LEFT坐标,与TOP坐标.
2.确认控件所有容器的HEIGHT与WIDTH.
3.LEFT坐标或TOP坐标为负值.或大于HEIGHT或WIDTH 那怎么也看不见控件的.
我这只有一个改变进制的方法,你自己去研究一下.
'*************************************
'目的:将10进制数转换为N进制数
'输入: Ten 要转换的十进制数
' N N进制数
' Chr N进制数的字符集
'返回: 成功 转换后的数据
' 失败 ""
'*************************************Private Function ConverTenToN(ByVal Ten As Long, ByVal N As Long, ByVal Chr As String) As String
If N <= 1 Then Exit Function
If Len(Chr) < N Then Exit Function
While Ten <> 0
ConverTenToN = Mid(Chr, (Ten Mod N) + 1, 1) & ConverTenToN
Ten = Int(Ten / N)
Wend
End Function'*************************************
'目的:将N进制数转换为十进制数
'输入: Data 字符串 要转换的N进制数字符串
' N N进制数
' Chr N进制数的字符集
'返回: 成功 转换后的数据
' 失败 ""
'*************************************
Private Function ConverNToTen(ByVal N As Long, ByVal Data As String, ByVal Chr As String) As Double
Dim DataIndex As Long
ConverNToTen = 0
For i = 0 To Len(Data) - 1
DataIndex = FindDataIndex(N, Mid(Data, Len(Data) - i, 1), Chr)
'Stop
If DataIndex = -1 Then
MsgBox "要转换的" & N & "进制数字符集错误!"
Exit Function
Else
ConverNToTen = ConverNToTen + N ^ i * (DataIndex - 1)
End If
Next
End Function
'*************************************
'目的:N进制数转换为十进制数所用方法,取得字符在N进制字符集中的位置
'输入: CharCount N进制字符集中字符的总数。即N
' FindChar 要寻找的字符集
' Chr N进制数的字符集
'返回: 成功 取得字符的位置
' 失败 ""
'
'示例: FindDataIndex (16,"A",Chr)=10 .Chr中保存有
'*************************************
Private Function FindDataIndex(ByVal CharCount As Long, FindChar As String, ByVal Chr As String) As Long
FindDataIndex = -1
For i = 1 To CharCount
If Mid(Chr, i, 1) = FindChar Then
FindDataIndex = i
Exit Function
End If
Next
End Function
...
Get 1,5,buf '取第5,第6个字节分别放在buf(0)和buf(1)中。余数的问题好好看看讲二进制数的书。
iif(a and cbyte(1),1,0) '第一位(最低位)
iif(a and cbyte(2),1,0) '第二位
iif(a and cbyte(4),1,0) '第三位
iif(a and cbyte(8),1,0) '第四位
...
iif(a and cbyte(128),1,0) '第8位(最高位)