vb问题:请问怎么用二进制方式(binary)打开文本文件(txt)并读取里面的文本到文本框text1中?
发布网友
发布时间:2023-07-14 01:01
我来回答
共4个回答
热心网友
时间:2023-09-22 11:30
1、在工程菜单中 添加部件 找到 Microsoft common dialog control 选上添加。
2、在 form1 中 拖放 text、Command和commondialog 控件,把commondialog的name 属性改为 Cdg1。
3、在command1_click 事件中输入代码:
Private Sub Command1_Click()
Dim FileNam As String
Dim tStr() As Byte
Dim txtStr As String
CDg1.Filter = "*.txt" ' 文件对话框的默认打开文件类型
CDg1.FileName = "*.txt"
CDg1.ShowOpen
FileNam = CDg1.FileName
Open FileNam For Binary As #1 '以二进制文件方式打开文件
ReDim tStr(n) As Byte
Get #1, , tStr '读取文本
Close (1)
Text1.Text = StrConv((tStr()), vbUnicode) ' 写入text1
End Sub
热心网友
时间:2023-09-22 11:30
如果文本文件有多行,应该把文本框Text1的MultiLine属性设为True
Dim a() As Byte
Open "a.txt" For Binary As #1
ReDim a(LOF(1) - 1) As Byte
Get #1, , a
Close #1
If a(0) <> &HFF And a(0) <> &HFE And a(0) <> &HEF Then
Text1.Text = StrConv(a, vbUnicode)
Else
MsgBox "文本文件不是ANSI编码"
End If
如果需要读取非ANSI编码文件,请补充问题。
追问同样你的方法也只能显示一半内容,我的题目是将两个文本用二进制方法合并成文本文件并显示在文本框中 你的方法可以显示原来的两个文本 但是合并后的文本无法用这种方法全部显示出来 不知道为什么
追答
你原先没有说明你的文本文件是你自己合并成的。
你的合并方法有问题,合并后的3.txt比1.txt和2.txt加起来大2字节。
要显示你的3.txt,把
Text1.Text = StrConv(a, vbUnicode)
改成
Text1.Text = Replace(StrConv(a, vbUnicode), Chr(0), "")
正确的二进制合并文件代码,把你的两个Do循环改成
Do
Get #1, , char
If EOF(1) Then Exit Do
Put #3, , char
Loop
Do
Get #2, , char
If EOF(2) Then Exit Do
Put #3, , char
Loop
热心网友
时间:2023-09-22 11:30
最简单的方法是:
Open "123.txt" For Binary As #1
Text1.Text = Input(LOF(1), #1)
Close #1
当然里面的文本文件名自己改
热心网友
时间:2023-09-22 11:31
Private Sub Command1_Click()
Dim b() As Byte, i As Long
T = "C:\1.txt" '文本路径
Open T For Binary As #1
b = InputB(LOF(1), #1)
Close #1
For i = 0 To UBound(b)
T1 = T1 & b(i)
Next
Text1 = T1
End Sub
'请参考采纳,谢谢!
'你试过我给你的方法吗?我已经调试正常的~
Private Sub Command2_Click()
Dim a() As Byte, b() As Byte
Open "D:\作业\31\1.txt" For Binary As #1
Open "D:\作业\31\2.txt" For Binary As #2
Open "D:\作业\31\3.txt" For Output As #3
a = InputB(LOF(1), #1)
b = InputB(LOF(1), #2)
For i = 0 To UBound(a)
T1 = T1 & a(i)
Next
For i = 0 To UBound(b)
T2 = T2 & b(i)
Next
Print #3, T1 & T2
Close #1, #2, #3
End Sub
'试试这个效果怎样,把1.txt 2.txt 转换为二进制把结果保存在3.txt。