§11 ファイル処理(1)1 プログラミング実習
 back next 

 コンピュータに入力したデータは、コンピュータの電源を切ると消えてしまう。データを残しておくには、ファイルとしてハードディスクなどに保存しておくのが一般的である。
 VBでファイルを処理するには、My.Computer.FileSystemオブジェクトの読み書きをするメソッドを利用する。
 ここでは、ファイルの読み書きなどのファイル処理について学習する。

利用するオブジェクト等
ファイルシステム(My.Computer.FileSystem)

【注意】
 ファイルを読み書きするプログラムは、ネットワーク上のドライブからはセキュリティ上の問題で実行できない。プログラムはローカルのドライブにある必要がある。
 この実習もファイルを扱うので、プロジェクトの保存先はローカルのドライブにする必要がある。


【1】 プログラム作成の準備

操作 1 Windowsアプリケーションを作成するためのプロジェクトを作成する。
 プロジェクト名は「実習11ファイル処理1」とする。

操作 2 フォーム(Form1)のプロパティを次のように設定する。

Text ファイル処理1

操作 3 上の図を参考にして、必要なオブジェクトを配置し、プロパティを設定する。

ラベル (Name) → Label1、 Text → ファイル名
テキストボックス (Name) → Data1、 Multiline → True、 ScrollBars → Vertical
(Name) → FName、 Text → test.txt
ボタン (Name) → ReadButton、 Text → 読み込み
(Name) → WriteButton、 Text → 書き込み
(Name) → ClearButton、 Text → クリア
(Name) → EndButton、 Text → 終 了

操作 4 プログラムを保存する。 ( [ファイル(F)] → [すべてを保存(L)] )

操作 5 プログラムを実行する。

結果 Data1にデータは入力できるが、どのボタンをクリックしても何も起こらない。

 

【2】 ファイルの読み書き

 ファイルからデータ(テキストデータ)を読み込むにはMy.Computer.FileSystemオブジェクトのReadAllTextメソッドを、データを書き込むにはWriteAllTextメソッドを使う。

My.Computer.FileSystem.ReadAllText(ファイル名)
 ファイル名 のファイルから読み込んだすべてのデータを返却する。返却されるデータは文字型である。
My.Computer.FileSystem.WriteAllText(ファイル名, データ, 追記)
 ファイル名 のファイルにデータ を書き込む。追記 にTrueを設定するとデータ はファイルに追加書き込みされる。Falseを設定すると新規に書き込みされるので、既存のデータは消去される。

操作 6 最初に、[クリア](ClearButton)ボタンと[終了](EndButton)ボタンのクリックイベントに対応するメソッドを次のように作成する。

    Private Sub EndButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EndButton.Click
        Me.Close()    '終了
    End Sub
 
    Private Sub ClearButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ClearButton.Click
        Data1.Text = ""    'データ消去
        Data1.Focus()    'フォーカス設定
    End Sub

結果 [クリア]ボタンをクリックするとData1に入力されたデータは消去される。[終了]ボタンをクリックするとプログラムは終了する。

操作 7 [読み込み](ReadButton)ボタンと[書き込み](WriteButton)ボタンのクリックイベントに対応するメソッドを次のように作成する。

    Private Sub ReadButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ReadButton.Click
        Data1.Text = My.Computer.FileSystem.ReadAllText(FName.Text)
    End Sub
 
    Private Sub WriteButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles WriteButton.Click
        My.Computer.FileSystem.WriteAllText(FName.Text, Data1.Text, False)
    End Sub

操作 8 実行して、次の4行分のデータを入力してから[書き込み]ボタンをクリックする。

abcdefg▽
hijklmn▽
opqrstu▽
vwxyz▽
※注意 [書き込み]ボタンをクリックする前に[読み込み]ボタンをクリックすると、読み込むべきファイルがまだないのでエラーになる。
 ▽は[Enter]キーである。

操作 9 [クリア]ボタンをクリックして入力データを消去してから[読み込み]ボタンをクリックする。

結果 ファイルから読み込まれた4行分のデータ(アルファベット)がData1に表示される。

 ここまでで、ファイルに対してデータの読み書きの処理が確認できた。
 書き込まれたファイルのファイル名はFNameに入力されている"test.txt"である。保存場所は実行ファイルと同じフォルダである。このプログラムは「実習11ファイル処理1」フォルダ内に保存されいる。デバッグ中の実行ファイルは「実習11ファイル処理1\bin\Debug」フォルダ内に保存されており、同じフォルダに保存した"test.txt"ファイルもある。

操作 10 新しく、次の3行分のデータを入力してから[書き込み]ボタンをクリックする。

0123456789▽
0123456789▽
0123456789▽

操作 11 [クリア]ボタンをクリックして入力データを消去してから[読み込み]ボタンをクリックする。

結果 ファイルから読み込まれた3行分のデータ(数字)がData1に表示される。元のアルファベットのデータはなくなっている。
 WriteAllTextメソッドで、追記にFalseを設定しているので、元のデータは消去されて新しいデータが書き込まれる。

操作 12 [終了]ボタンをクリックしてプログラムを終了させ、書き込みのメソッドを次の下線部のように変更する。

    Private Sub WriteButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles WriteButton.Click
        My.Computer.FileSystem.WriteAllText(FName.Text, Data1.Text, True)
    End Sub

操作 13 実行して、次の2行分のデータを入力してから[書き込み]ボタンをクリックする。

abcdefg▽
abcdefg▽

操作 14 [クリア]ボタンをクリックして入力データを消去してから[読み込み]ボタンをクリックする。

結果 ファイルから読み込まれたデータがData1に表示される。
 追加書き込みされるので、5行分のデータが表示される。
0123456789▽
0123456789▽
0123456789▽
abcdefg▽
abcdefg▽


 back next 
 §11 ファイル処理(1)1 Copyright©2008 Hiroshi Masuda 

 

 

inserted by FC2 system