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それはテキストに一致するすべての行を再検索するフィルタリング機能です"Test_" + DateTimePicker2.Value.ToString("yyyyMMdd") + ".csv"。次に、各行をループして再度比較し、一致するかどうかを確認します"Test_" + DateTimePicker2.Value.ToString("yyyyMMdd") + ".csv"。したがって、2番目のメッセージボックスが呼び出されることはありません。私はこれを提案します、

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

質問によると、文字列がファイルに存在するかどうかを知りたいのですが、これにより、存在するかどうかがわかります。

于 2012-10-19T14:46:09.717 に答える