使用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
展开
 我来答
szqaly
推荐于2016-11-03 · TA获得超过1745个赞
知道大有可为答主
回答量:2107
采纳率:77%
帮助的人:1534万
展开全部
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上修改颜色的话,在选项对话框中也可以设置吗。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式