好的,下面的代码我正在文本文件中读取并在一行中搜索特定的字符串。如果找到了字符串,我不想做任何事情,如果找不到,我想做别的事情。现在我为每个条件都有一个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
答案 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
根据这个问题,你想知道文件中是否存在字符串,这将告诉你它是否存在。