vb问题:请问怎么用二进制方式(binary)打开文本文件(txt)并读取里面的文本到文本框text1中?
我的源码是:
Private Sub Command2_Click()
Dim char As Byte, n#
Open "D:\作业\31\1.txt" For Binary As #1
Open "D:\作业\31\2.txt" For Binary As #2
Open "D:\作业\31\3.txt" For Binary As #3
Do While Not EOF(1)
Get #1, , char
Put #3, , char
Loop
Do While Not EOF(2)
Get #2, , char
Put #3, , char
Loop
Close #1, #2, #3
用大家给的方法不能完全显示3.txt的内容 有谁能解决这个问题吗? 展开
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
如果文本文件有多行,应该把文本框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
Open "123.txt" For Binary As #1
Text1.Text = Input(LOF(1), #1)
Close #1
当然里面的文本文件名自己改
只能读出一部分 不知道 为什么 我的是题目是 :用二进制读取方法将两个文本里的内容合并将合并内容显示下文本框里
用你这个方法 只能显示一半 另一个文本里的内容无法显示
大哥,以后提问题一次性完整提出来好么?你一开始提的问题跟你后面补充的代码意思大相径庭,浪费我们的时间。
Private Sub Command2_Click()
Open "D:\作业\31\1.txt" For Binary As #1
Open "D:\作业\31\2.txt" For Binary As #2
Open "D:\作业\31\3.txt" For Binary As #3
Put #3, , Input(LOF(1), #1)
Put #3, , Input(LOF(2), #2)
Close #1, #2, #3
Open "D:\作业\31\3.txt" For Binary As #1
Text1.Text = Input(LOF(1), #1)
Close #1
End Sub
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。