C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

StreamReader Readlineについて

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■93371 / inTopicNo.1)  StreamReader Readlineについて
  
□投稿者/ 勝占 (1回)-(2019/12/08(Sun) 17:52:43)

分類:[VB.NET/VB2005 以降] 

現在勉強中の者です。
ファイル読み込み処理で不明点がございましたので
ご教授頂けたら幸いでございます。


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

上記プログラムで4行目で出力される文字列が
3行目で参照される文字列の「次の行の文字列」が
出力されてしまいます。

何が問題かあまりよくわかりません。
宜しくお願い致します…


引用返信 編集キー/
■93373 / inTopicNo.2)  Re[1]: StreamReader Readlineについて
□投稿者/ Hongliang (935回)-(2019/12/08(Sun) 17:59:38)
ReadLine()は、1行読んでその行を返し、内部では次の行の先頭に移動しています。
2回呼び出せば2行進むのは当然です。
読み取った行を判定にも使用したいのであれば、いったん変数に格納するようにします。

Dim line As String = reader.ReadLine()
If line.Contains(...) Then
    Console.WriteLine(line)
End If

引用返信 編集キー/
■93374 / inTopicNo.3)  Re[2]: StreamReader Readlineについて
□投稿者/ 勝占 (3回)-(2019/12/08(Sun) 18:07:28)
No93373 (Hongliang さん) に返信
> ReadLine()は、1行読んでその行を返し、内部では次の行の先頭に移動しています。
> 2回呼び出せば2行進むのは当然です。
> 読み取った行を判定にも使用したいのであれば、いったん変数に格納するようにします。
>
> Dim line As String = reader.ReadLine()
> If line.Contains(...) Then
> Console.WriteLine(line)
> End If


ありがとうございます!!
上手くいきました!( ゚Д゚)

詳しく説明頂きましてありがとうございました
また、何か御座いましたら何卒宜しくお願い致します!
引用返信 編集キー/
■93375 / inTopicNo.4)  Re[3]: StreamReader Readlineについて
□投稿者/ 勝占 (5回)-(2019/12/08(Sun) 18:14:27)
解決致しました!
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ