§2 ファイルの処理 VB6 | |
(3) シーケンシャル・ファイルの処理 |
シーケンシャルとは「順番に」という意味である。したがって、シーケンシャル・ファイルはデータを書き込んだ順番通りに記憶する、逆に記憶されている順番通りにデータが読み込まれるファイルである。
次にサンプルのプログラムを示す。プログラムはダウンロードして実行を確認してみよう。
<DownLoad>: FileInOut1.lzh (FileInOut1.vbp, FileInOut1.frm) 3KB
図2-3-1 サンプル デザインウィンドウ |
実行するとファイル名はデフォルトで test.txt となる。
まず左側の@〜Bのコマンドボタンでデータを書き込む。Aのデータ書き込みは3つずつになっている。Aは何回クリックしても良いが、書き込むデータを変えてからクリックする(読み込んだときデータに変化がないとわからなくなるから)。
いくつかデータを書き込んだ後で、右側の@〜Bのコマンドボタンでデータを読み込む。書き込んだデータの個数以上にAをクリックするとエラーになるので注意すること。
実行して次のようにデータを書き込むとプログラムと同じフォルダに test.txt というファイルが作成される。
書き込みデータ → abc, 123, def
メモ帳などのエディタでファイル test.txt を開くと図2-3-2のように、1つのデータが1行に記録されている。すなわち、データの区切りとして改行文字が使われていることがわかる。
図2-3-2 |
・プログラムリスト
Private Sub Command1_Click() '@ファイルを開く (書込みモード) ' Open命令 ' ファイル名:Text1.Text ' モード:Output (書込みモード) ' ファイル番号:1 (オープンしたファイルに割り当てる番号) ' Open Text1.Text For Output As #1 End Sub Private Sub Command2_Click() 'Aデータ入力・書込み ' Text2〜Text4の内容(Textプロパティ)をファイルに書き込む ' Print #1, Text2.Text '出力パート Print #1, Text3.Text Print #1, Text4.Text End Sub Private Sub Command3_Click() 'Bファイルを閉じる Close #1 End Sub Private Sub Command4_Click() '@ファイルを開く (読込みモード) ' Open命令 ' ファイル名:Text1.Text ' モード:Input (読込みモード) ' ファイル番号:1 (オープンしたファイルに割り当てる番号) ' Open Text1.Text For Input As #1 End Sub Private Sub Command5_Click() 'Aデータ読込み・出力(表示) ' ファイルから読み込んだデータをText5〜Text7に表示する。(Textプロパティに記憶する) ' Dim work(2) As String Input #1, work(0) '1つ目のデータ読込み 入力パート Input #1, work(1) '2つ目のデータ読込み Input #1, work(2) '3つ目のデータ読込み Text5.Text = work(0) 'データ表示 Text6.Text = work(1) 'データ表示 Text7.Text = work(2) 'データ表示 End Sub Private Sub Command6_Click() 'Bファイルを閉じる Close #1 End Sub Private Sub Form_Load() 'データやオブジェクト(部品)のプロパティなどの初期化 ChDrive App.Path 'ネットワークドライブのときは不要 ChDir App.Path Text1.Text = "test.txt" 'ファイル名="test.txt" Text2.Text = "" 'テキストボックス クリア Text3.Text = "" Text4.Text = "" Text5.Text = "" Text6.Text = "" Text7.Text = "" End Sub
(3) シーケンシャル・ファイルの処理 | |
Copyright © 2002 Hiroshi Masuda |