2012-10-19 52 views
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 
+3

您是否認爲您可能沒有_any_匹配行,特別是在調用'Filter'之後?你能解釋一下'Filter'的作用嗎? – Oded

+0

我的理解,我認爲可能是錯誤的,是過濾出我正在檢查的特定字符串......顯然不是。 – Muhnamana

回答

2

如果我解釋你的代碼correcty,Filter是returing匹配的文本"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 

據的問題,你想知道,如果該文件或不存在中的字符串,這會告訴你,如果它確實與否。