§2 ファイルの処理 VB6
 (5) データ入力のされ方 前へ 目次へ 次へ 

 次に、形式1〜12の出力データのファイルを読み込むときについてみて見みよう。

 次のプログラムリストの入力パート(宣言部)の部分をいろいろ変更して、どのように入力(変数に記憶)されるか見てみる。

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

 入力の命令では上のサンプルのように3行に分けて書いても Input #1, work(0), work(1), work(2) のように1行で書いても同じである。つまり、1つ目の区切りまでのデータがwork(0)に、2つ目の区切りまでがwork(1)に、3つ目の区切りまでがwork(2)に記憶される。
 配列workは Dim work(2) As String で文字列(String)型で宣言している。
 入力の命令はInput命令とLine Input命令がある。

 データファイルをメモ帳などで作成し、プログラムと同じフォルダにファイル名 test.txt で保存しておく。

出力形式 データファイル 入力パート・宣言部 記憶状態
abc
123
def
Dim work(2) As String
work(0)=abc
work(1)=123
work(2)=def
Dim work(2) As Integer
work(0)=0
work(1)=123
work(2)=0
abc          123          def
Dim work(2) As String
work(0)に1行全て読み込まれ、
work(1),work(2)の分がないので
エラーとなる。
Dim work(2) As Integer
work(0)=0
work(1)=123
work(2)=0
abc123def
Dim work(2) As String
work(0)に1行全て読み込まれ、
work(1),work(2)の分がないので
エラーとなる。
Dim work(2) As Integer
abc123def が数値変換時に0と
解釈され、 work(1),work(2)の分が
ないのでエラーとなる。
"abc"
"123"
"def"
Dim work(2) As String
work(0)=abc
work(1)=123
work(2)=def
Dim work(2) As Integer
work(0)=0
work(1)=0
work(2)=0
5,6 "abc","123","def"
Dim work(2) As String
work(0)=abc
work(1)=123
work(2)=def
Dim work(2) As Integer
work(0)=0
work(1)=0
work(2)=0
7,10  0
 123
 0
Dim work(2) As String
work(0)=abc
work(1)=123
work(2)=def
Dim work(2) As Integer
work(0)=0
work(1)=123
work(2)=0
 0          123          0
Dim work(2) As String
work(0)に1行全て読み込まれ、
work(1),work(2)の分がないので
エラーとなる。
Dim work(2) As Integer
work(0)=0
work(1)=123
work(2)=0
 0  123  0
Dim work(2) As String
work(0)に1行全て読み込まれ、
work(1),work(2)の分がないので
エラーとなる。
Dim work(2) As Integer
work(0)=0
work(1)=123
work(2)=0
11,12 0,123,0
Dim work(2) As String
work(0)=0
work(1)=123
work(2)=0
Dim work(2) As Integer
work(0)=0
work(1)=123
work(2)=0
Line Input命令 (Input命令と異なるものだけ)
5,6 "abc","123","def"
Dim work(2) As String
work(0)に1行全て読み込まれ、
work(1),work(2)の分がないので
エラーとなる。
Dim work(2) As Integer
型不一致のエラーとなる。
11,12 0,123,0
Dim work(2) As String
work(0)に1行全て読み込まれ、
work(1),work(2)の分がないので
エラーとなる。
Dim work(2) As Integer
型不一致のエラーとなる。

 読み込んだデータを記憶しておく変数の型が文字列型の場合と数値型の場合とでは記憶のされ方が異なる。
 Line Input命令では読み込んだデータを記憶しておく変数は文字列型だけが指定できる。


 (5) データ入力のされ方 前へ 目次へ 次へ 
Copyright © 2002 Hiroshi Masuda 

 

 

inserted by FC2 system