使用VB 读取文件内容
有一个文件是TXT格式的,文件的内容是11223344AABBCC……文件的内容都是十六进制的数,我读取的时候文件内容是当成字符读取了,但是我想实现的功能是将内容读取到一...
有一个文件是TXT格式的,
文件的内容是 11 22 33 44 AA BB CC ……
文件的内容都是十六进制的数,
我读取的时候文件内容是当成字符读取了,
但是我想实现的功能是 将内容读取到一个数组里,
数组内容是 11 22 33 44 AA BB CC ……
网友说 用 data2 = Split(DAT, "") 能实现 但是我使用的时候一直有错误,
下面是我的代码 看看哪里错了,
另外百度提问有字数限制 太难受
Private Sub Command1_Click()
End Sub
Private Sub Form_Load()
With MSComm
.CommPort = 10 '设置 Com1 为通信端口
.Settings = "9600,E,7,2" '设置通信端口参数 9600 赫兹、偶校验、7 个数据位、2 个停止位.(这里需要进一步说明的是:.Setting=”BBBB,P,D,S”。
'含义是:B:Baud Rate(波特率);P:Parity(奇偶);D:Data Bit;S:StopBit)
.InBufferSize = 40 '设置缓冲区接收数据为 40 字节
.InputLen = 1 '设置 Input 一次从接收缓冲读取字节数为 1
.RThreshold = 1 '设置接收一个字节就产生 OnComm 事件
.PortOpen = True
.InputMode = comInputModeBinary '设置数据接收模式--二进制模式
.OutBufferCount = 0
End With
End Sub
Private Sub MSComm1_OnComm()
End Sub
Private Sub Sendbtn_Click()
Dim data2() As Byte
Dim DAT() As String
Dim FileSize As Long '文件长度
Open "E:\STM32_WriteFlash\VB\STM32WriteFlash\1TXT" For Binary As #1
FileSize = LOF(1)
MsgBox LOF(1)
ReDim DAT(FileSize - 1) As String
' Open 文件名 For Binary As #100000
Get #1, , DAT
Close #1
data2 = Split(DAT, "")
MSComm.Output = data2
' MSComm.Output = Trim(SendTxt.Text) ‘发送当前的文本内容
End Sub 展开
文件的内容是 11 22 33 44 AA BB CC ……
文件的内容都是十六进制的数,
我读取的时候文件内容是当成字符读取了,
但是我想实现的功能是 将内容读取到一个数组里,
数组内容是 11 22 33 44 AA BB CC ……
网友说 用 data2 = Split(DAT, "") 能实现 但是我使用的时候一直有错误,
下面是我的代码 看看哪里错了,
另外百度提问有字数限制 太难受
Private Sub Command1_Click()
End Sub
Private Sub Form_Load()
With MSComm
.CommPort = 10 '设置 Com1 为通信端口
.Settings = "9600,E,7,2" '设置通信端口参数 9600 赫兹、偶校验、7 个数据位、2 个停止位.(这里需要进一步说明的是:.Setting=”BBBB,P,D,S”。
'含义是:B:Baud Rate(波特率);P:Parity(奇偶);D:Data Bit;S:StopBit)
.InBufferSize = 40 '设置缓冲区接收数据为 40 字节
.InputLen = 1 '设置 Input 一次从接收缓冲读取字节数为 1
.RThreshold = 1 '设置接收一个字节就产生 OnComm 事件
.PortOpen = True
.InputMode = comInputModeBinary '设置数据接收模式--二进制模式
.OutBufferCount = 0
End With
End Sub
Private Sub MSComm1_OnComm()
End Sub
Private Sub Sendbtn_Click()
Dim data2() As Byte
Dim DAT() As String
Dim FileSize As Long '文件长度
Open "E:\STM32_WriteFlash\VB\STM32WriteFlash\1TXT" For Binary As #1
FileSize = LOF(1)
MsgBox LOF(1)
ReDim DAT(FileSize - 1) As String
' Open 文件名 For Binary As #100000
Get #1, , DAT
Close #1
data2 = Split(DAT, "")
MSComm.Output = data2
' MSComm.Output = Trim(SendTxt.Text) ‘发送当前的文本内容
End Sub 展开
1个回答
展开全部
Private Sub Sendbtn_Click()
Dim FileSize As Long '文件长度
Open "E:\STM32_WriteFlash\VB\STM32WriteFlash\1.TXT" For Binary As #1 '扩展名前少了点
FileSize = LOF(1)
MsgBox LOF(1)
Dim DAT() As Byte '用二进制方式读取文本文件需要用字节数组来接收
ReDim DAT(FileSize - 1)
' Open 文件名 For Binary As #100000
Get #1, , DAT
Close #1
Dim S As String
S = StrConv(DAT, vbUnicode) '把字节数组转换为字符串类型
S = Trim(S)
Dim Items() As String
Items = Split(S, " ") '以空格分隔每段数字
Dim data2() As Byte
ReDim data2(UBound(Items))
Dim Index As Integer
Dim item
For Each item In Items '把数字字符串转换为字节
If item <> "" And Not item Like "*[!0-9a-fA-F]*" Then '把不是十六进制字符,空串忽略掉
data2(Index) = CByte("&H" & item) '在数字在加个前缀&H,它才能识别是十六进制数字字符
Debug.Print data2(Index)
Index = Index + 1
End If
Next
ReDim Preserve data2(Index - 1)
MSComm.Output = data2
' MSComm.Output = Trim(SendTxt.Text) ‘发送当前的文本内容
End Sub
追问
你用的什么软件 我用的VB6.0
你的这个关键字怎么这个颜色 看着挺舒服的
追答
这种风格百度上的,它可以设置多种文本类型风格,这个就vb类型。
不过你要vb上修改颜色的话,在选项对话框中也可以设置吗。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询