有两个txt文件A和B,从A中读取数据并进行判断,如果符合判断条件则写入B文件中,我用了以下的程序,不进行IF判断时是可以正常读写操作的,为何加入IF语句后在B文件中就没有输出结果了呢?Dim TStr As String
Dim intext As StringPrivate 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

解决方案 »

  1.   

    text1.text 是什么? 将  TStr = TStr + intext + Chr(13) + Chr(10)  和 Trim("asd")   比较,肯定不是你想要的。去掉 不显示的字符,应该可以了。另外,chr(13) + chr(10)  => vbcrlf 
      
      

  2.   

    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文件啊
      

  3.   

    改改试下
    if tstr="asd" then
    open ("c:\text2.txt") for output as #2
    print#2,tstr
    close#2
    else
    exit sub
    endif
      

  4.   

    听取大家的宝贵意见后,我对代码进行了修改(代码如下),已可以根据判断的值进行读写操作,但问题又来了,只能读取A文件中的第一行和在B文件中的第一行进行写操作。问题:如何让读写文件的指针在一次读写完成后指向下一行呢?
    Dim TStr As String
    Dim intext As StringPrivate 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
      

  5.   

    Line Input 之后,自动到下一行。print 后自动到下一行。Dim intext As StringPrivate 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  
      

  6.   

    已经成功了,谢谢cangwu_lee(橙子)回复,谢谢!
      

  7.   

    终于得到自己想要的结果了,谢谢上面对面几位大侠的大力帮助!下面贴出的就是完整的程序,希望对和我一样被类似问题困扰的朋友有所帮助。
    Dim Str1 As String
    Dim Str2 As StringPrivate 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 SubPrivate 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
      

  8.   

    Public Function DownloadFile(url As String, LocalFilename As String) As Boolean '下载文件