如果其他声明没有正确触发

时间:2012-10-19 14:33:41

标签: vb.net visual-studio-2010 if-statement

好的,下面的代码我正在文本文件中读取并在一行中搜索特定的字符串。如果找到了字符串,我不想做任何事情,如果找不到,我想做别的事情。现在我为每个条件都有一个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

1 个答案:

答案 0 :(得分:2)

如果我正确地解释您的代码,Filter是一个过滤功能,它会撤回与文本"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

根据这个问题,你想知道文件中是否存在字符串,这将告诉你它是否存在。