Using reader As New StreamReader("パス", Encoding.Default) Do While (reader.Peek() > -1) If reader.ReadLine.Contains("あ") = False Then Console.WriteLine(reader.ReadLine()) '←問題点 End If Loop End Using
ReadLine()は、1行読んでその行を返し、内部では次の行の先頭に移動しています。
2回呼び出せば2行進むのは当然です。
読み取った行を判定にも使用したいのであれば、いったん変数に格納するようにします。
Dim line As String = reader.ReadLine()
If line.Contains(...) Then
Console.WriteLine(line)
End If
■No93373 (Hongliang さん) に返信 > ReadLine()は、1行読んでその行を返し、内部では次の行の先頭に移動しています。 > 2回呼び出せば2行進むのは当然です。 > 読み取った行を判定にも使用したいのであれば、いったん変数に格納するようにします。 > > Dim line As String = reader.ReadLine() > If line.Contains(...) Then > Console.WriteLine(line) > End If