网上有很多说的都不能用,请先自己测试一下是否真的可以实现 ==! 谢谢好心人
我的源码是:
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如果需要读取非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只能读出一部分 不知道 为什么 我的是题目是 :用二进制读取方法将两个文本里的内容合并将合并内容显示下文本框里
用你这个方法 只能显示一半 另一个文本里的内容无法显示
大哥,以后提问题一次性完整提出来好么?你一开始提的问题跟你后面补充的代码意思大相径庭,浪费我们的时间。
Private Sub Command2_Click()不好意思 之前没有说清楚 ,我以为自己合并的txt文本和 原来的txt文本是一样的,我用你写的这个代码写了一下,但是还是没有通过,返回的是一个点,连一半内容也没有了 不过还是谢谢你热心的回答~