请教vb6.0对txt文件进行读写操作问题

jhzcode01 2007-02-08 08:49:01
有两个txt文件A和B,从A中读取数据并进行判断,如果符合判断条件则写入B文件中,我用了以下的程序,不进行IF判断时是可以正常读写操作的,为何加入IF语句后在B文件中就没有输出结果了呢?

Dim TStr As String
Dim intext As String

Private Sub Command1_Click()
Open ("c:\test1.txt") For Input As #1
Do While Not EOF(1)
Line Input #1, intext
TStr = TStr + intext + Chr(13) + Chr(10)
Loop
Close #1

Open ("c:\test2.txt") For Output As #2
If Trim(TStr) = Trim("asd") Then '对读取的数据进行判断
Print #2, TStr '如果符合判断条件则在test2中加入数据
Else
Close #2
End If
Text1.Text = TStr
End Sub
...全文
1769 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq32cn 2007-09-06
  • 打赏
  • 举报
回复
Public Function DownloadFile(url As String, LocalFilename As String) As Boolean '下载文件
jhzcode01 2007-02-09
  • 打赏
  • 举报
回复
已经成功了,谢谢cangwu_lee(橙子)回复,谢谢!
jhzcode01 2007-02-09
  • 打赏
  • 举报
回复
终于得到自己想要的结果了,谢谢上面对面几位大侠的大力帮助!下面贴出的就是完整的程序,希望对和我一样被类似问题困扰的朋友有所帮助。
Dim Str1 As String
Dim Str2 As String

Private Sub Command1_Click()
Open "c:\test1.txt" For Input As #1 '打开文件
Open "c:\test3.txt" For Output As #3 '打开文件

Do While Not EOF(1) '如果指针不是指向文件结尾,则执行循环
Line Input #1, Str1 '读取文件内容并将值赋给变量Str1
Call Compare '调用compare过程
Loop

Close #1
Close #3
End Sub

Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Compare()
Open "c:\test2.txt" For Input As #2

Do While Not EOF(2)
Line Input #2, Str2
If StrComp(Trim(Str1), Trim(Str2), vbTextCompare) = ture Then '调用StrComp函数,对读取的数据进行判断
Print #3, Str2 '如果符合判断条件则在test3中写入数据
End If
Loop

Close #2
End Sub
cangwu_lee 2007-02-08
  • 打赏
  • 举报
回复
Line Input 之后,自动到下一行。

print 后自动到下一行。



Dim intext As String

Private Sub Command1_Click()
Open "c:\test1.txt" For Input As #1
Open "c:\test2.txt" For Output As #2

do while not EOF(1)
Line Input #1, intext

If intext = "asd" Then '对读取的数据进行判断
Print #2, intext '如果符合判断条件则在test2中加入数据"
End If
loop

Close #2
Close #1
End Sub



jhzcode01 2007-02-08
  • 打赏
  • 举报
回复
听取大家的宝贵意见后,我对代码进行了修改(代码如下),已可以根据判断的值进行读写操作,但问题又来了,只能读取A文件中的第一行和在B文件中的第一行进行写操作。问题:如何让读写文件的指针在一次读写完成后指向下一行呢?
Dim TStr As String
Dim intext As String

Private Sub Command1_Click()
Open ("c:\test1.txt") For Input As #1
If Not EOF(1) Then
Line Input #1, intext
'TStr = TStr + intext
Close #1
End If
Open ("c:\test2.txt") For Output As #2
If intext = "asd" Then '对读取的数据进行判断
Print #2, intext '如果符合判断条件则在test2中加入数据"
End If
Close #2
End Sub
fankun 2007-02-08
  • 打赏
  • 举报
回复
你这个asd怎么来的???
fankun 2007-02-08
  • 打赏
  • 举报
回复
改改试下
if tstr="asd" then
open ("c:\text2.txt") for output as #2
print#2,tstr
close#2
else
exit sub
endif
colorslife 2007-02-08
  • 打赏
  • 举报
回复
Open ("c:\test2.txt") For Output As #2
If Trim(TStr) = Trim("asd") Then '对读取的数据进行判断
Print #2, TStr '如果符合判断条件则在test2中加入数据
Else
Close #2
End If
-------------
如果If语句条件成立,那你什么时候关闭#2文件啊
cangwu_lee 2007-02-08
  • 打赏
  • 举报
回复
text1.text 是什么?

将 TStr = TStr + intext + Chr(13) + Chr(10) 和 Trim("asd") 比较,肯定不是你想要的。

去掉 不显示的字符,应该可以了。

另外,chr(13) + chr(10) => vbcrlf


7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧