1

好的,我正在阅读文本文件中的以下代码并在一行中搜索特定字符串。如果找到字符串,我不想做任何事情,如果没有找到,我想做其他事情。现在我对每个条件都有一个 msgbox。

我遇到的问题是,当找不到字符串时,它不会触发 msgbox。另一个 msgbox 会在找到字符串时触发。

有任何想法吗?

    Dim logfile() As String = System.IO.File.ReadAllLines("C:\Temp\Transfer_Log.txt")
    Dim searchstring As String = "Test_" + DateTimePicker2.Value.ToString("yyyyMMdd") + ".csv"

    For Each line As String In Filter(logfile, searchstring)
        If line.Contains("Test_" + DateTimePicker2.Value.ToString("yyyyMMdd") + ".csv") Then
            MsgBox("Do Nothing") 'THIS WORKS
        Else
            MsgBox("Append") 'THIS DOES NOT WORK
        End If
    Next
4

1 回答 1

2

如果我正确地解释了您的代码,Filter则它是一个过滤功能,它正在返回与 text 匹配的所有行"Test_" + DateTimePicker2.Value.ToString("yyyyMMdd") + ".csv"。然后你遍历每一行并再次比较它以查看它是否匹配"Test_" + DateTimePicker2.Value.ToString("yyyyMMdd") + ".csv"。所以你的第二个消息框永远不会被调用。我会建议这个,

 IF Filter(logFile, searchstring).Count > 0 Then 
      MsgBox("Do Nothing")
 Else
      MsgBox("Append")
 EndIf

根据问题,您想知道文件中是否存在字符串,这会告诉您是否存在。

于 2012-10-19T14:46:09.717 回答