8.テキストファイルを読み込んでリストボックスに表示及びファイルに保存(19_Lst_02) (旧、SampleNo.107) |
1.テスト用のデータを作成・表示 2.表示したデータをテキストファイルに保存 3.上記保存データを読み込み表示 4. 5. 6. |
下記プログラムコードに関する補足・注意事項 動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86 Option :[Compare Text] [Explicit On] [Infer On] [Strict On] Imports :追加なし 参照設定:追加なし その他 : : このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので) 必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい) |
1.テスト用のデータを作成・表示 |
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim sTime As DateTime Dim eTime As DateTime ListBox1.Items.Clear() sTime = Now ListBox1.BeginUpdate() 'コントロールを再描画しないようにする。 For i As Integer = 0 To 9999 ListBox1.Items.Add(CStr(i).PadLeft(4, CChar(" ")) & " 番目のデータ[abcあいうえお123]です") Next i ListBox1.EndUpdate() 'コントロールの描画を再開する。 eTime = Now MessageBox.Show(eTime.Subtract(sTime).TotalSeconds & " 秒かかりました。") '結果 1.3 秒 End Sub |
2.表示したデータをテキストファイルに保存 |
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 'リストボックスに表示したデータをテキストファイルに保存 Dim sTime As DateTime Dim eTime As DateTime sTime = Now 'テキストファイルを上書きモードで開く(True で追加書き込み) Using st As New System.IO.StreamWriter(Application.StartupPath & "\ListBox1.txt", False, System.Text.Encoding.Default) For i As Integer = 0 To ListBox1.Items.Count - 1 'ファイルへ書き込み st.WriteLine(ListBox1.Items(i).ToString()) Next 'ファイルを閉じる End Using eTime = Now MessageBox.Show(eTime.Subtract(sTime).TotalSeconds & " 秒かかりました。") ListBox1.Items.Clear() End Sub |
3.上記保存データを読み込み表示 |
※ 下記のように、水平スクロールバーを表示した状態でファイルを読み込むと極端に処理速度が落ちる 非表示の状態での読み込みと比べてみて下さい。(プロパティで設定していても同様です。) Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click 'テキストファイルを読込みリストボックスに表示 'リストボックスに水平スクロールバーを表示 ListBox1.HorizontalScrollbar = True ListBox1.Items.Clear() '一旦消去 Dim sTime As DateTime Dim eTime As DateTime sTime = Now ListBox1.BeginUpdate() 'コントロールを再描画しないようにする。 Using st As New System.IO.StreamReader(Application.StartupPath & "\ListBox1.txt", System.Text.Encoding.Default) 'ファイルの最後までループ Do Until st.Peek = -1 '1行づつ読込む ListBox1.Items.Add(st.ReadLine) Loop End Using 'ファイルを閉じる ListBox1.EndUpdate() 'コントロールの描画を再開する。 eTime = Now MessageBox.Show(eTime.Subtract(sTime).TotalSeconds & " 秒かかりました。") End Sub |
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |