テキストファイルを読込テキストボックスに表示 (2個) (SNo.028) 1.テキストファイルを丸ごと読み込みテキストボックスに表示 2.テキストファイルを1行づつ読み込みテキストボックスに表示 |
|
使用コントロール | Button1 Button2 TextBox1 |
その他条件 | WindowsXP(Vista) Visual Basic 2005(VB2008) |
1.テキストファイルを丸ごと読み込みテキストボックスに表示
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click 'テキストファイルを丸ごと読み込みテキストボックスに表示 TextBox1.Clear() 'テキストファイルを現在のエンコード(シフトJIS)で開く Dim sr As New System.IO.StreamReader("..\..\test.txt", System.Text.Encoding.Default) 'テキストボックスに読込み表示 TextBox1.Text = sr.ReadToEnd 'ストリームを閉じ、システム リソースを解放 sr.Close() End Sub |
|
2.テキストファイルを1行づつ読み込みテキストボックスに表示 Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click 'テキストファイルを1行づつ読み込む TextBox1.Clear() Dim sr As New System.IO.StreamReader("..\..\test.txt", System.Text.Encoding.Default) '読込むテキストファイルのバッファーを確保(できれば少し多めに) Dim sb As New System.Text.StringBuilder( _ CInt(New System.IO.FileInfo("..\..\test.txt").Length)) 'ファイルの最後までループ Do Until sr.Peek = -1 '1行づつ読込む(文字列の連結が高速に処理される) sb.Append(sr.ReadLine & vbCrLf) Loop sr.Close() '読込んだデータをテキストボックスに表示 TextBox1.Text = sb.ToString() End Sub |
|
上記プログラムで、1Mバイトのファイルを読み込みテキストボックスに表示した場合の所要時間 .NET の場合 Button1 の場合 0.39 秒 Button2 の場合 0.40 秒 VB6.0 の場合 FileSystemObject の場合 約 2.67秒 Line Input の場合 約10分 バイナリの場合 約 2.63秒 |