§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 

 

 

inserted by FC2 system