tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルテキストファイルを1行づつ読み込む
記事No9179
投稿日: 2009/07/13(Mon) 08:59
投稿者従業員
お世話になります。 VB2005

VB.NET Tipsにあります、テキストファイルを1行づつ読み込むサンプルで

'読込むテキストファイルのバッファを確保(できれば少し多めに)
とありますが、具体的にどのように大きくすればよいのでしょうか?
text.txtと云うファイルを作っただけではだめなのでしょうか?
よろしくお願いいたします。

'テキストファイルを1行づつ読み込む
    TextBox1.Clear()
    Dim sr As New System.IO.StreamReader("..\..\test.txt", System.Text.Encoding.Default)
  '読込むテキストファイルのバッファを確保(できれば少し多めに)

[ツリー表示へ]
タイトルRe: テキストファイルを1行づつ読み込む
記事No9181
投稿日: 2009/07/13(Mon) 12:36
投稿者るしぇ
コメントはコードの上の行に書くものですから、
次の行に具体的なコードで書いてありますよね?

[ツリー表示へ]
タイトルRe^2: テキストファイルを1行づつ読み込む
記事No9183
投稿日: 2009/07/13(Mon) 16:40
投稿者従業員
> コメントはコードの上の行に書くものですから、
> 次の行に具体的なコードで書いてありますよね?

'読込むテキストファイルのバッファを確保(できれば少し多めに)
    
    Dim sb As New System.Text.StringBuilder( _
          CInt(New System.IO.FileInfo("..\..\test.txt").Length))

おこなってみましたら、「test.txt」というファイルができデータが書き込まれていました。
良くわかりませんが、ここのことを、バッファを確保というのでしょうか?

[ツリー表示へ]
タイトルRe^3: テキストファイルを1行づつ読み込む
記事No9184
投稿日: 2009/07/13(Mon) 16:51
投稿者YuO
バッファ自体は,明示的に確保する必要はないです。
足りなくなればSystem.Text.StringBuilderは自動で拡張しますので。

ただし,最初からサイズが予想できる場合には,
そのサイズをStringBuilderに教えておく事で,効率がよくなります。


でも,これは「1行ずつ読み込むからバッファが必要」なのではなく,
「読み込んだものを連結していくからバッファが必要」です。

たとえば,
Dim s As String
Dim reader = New StreamReader(filePath, Encoding.Default)

Do While True
  s = reader.ReadLine()
  If s Is Nothing Then Exit Do
  MessageBox.Show(s)
Loop
のように,連結しないのであれば,StringBuilderは不要です。

[ツリー表示へ]
タイトルRe^4: テキストファイルを1行づつ読み込む
記事No9185
投稿日: 2009/07/13(Mon) 17:45
投稿者従業員
どうもありがとうございました。
良くわかりました。

> 「読み込んだものを連結していくからバッファが必要」です。

[ツリー表示へ]