§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 で保存しておく。
出力形式 データファイル 入力パート・宣言部 記憶状態 1 abc
123
def Dim work(2) As Stringwork(0)=abc
work(1)=123
work(2)=def Dim work(2) As Integerwork(0)=0
work(1)=123
work(2)=02 abc 123 def Dim work(2) As Stringwork(0)に1行全て読み込まれ、
work(1),work(2)の分がないので
エラーとなる。 Dim work(2) As Integerwork(0)=0
work(1)=123
work(2)=03 abc123def Dim work(2) As Stringwork(0)に1行全て読み込まれ、
work(1),work(2)の分がないので
エラーとなる。 Dim work(2) As Integerabc123def が数値変換時に0と
解釈され、 work(1),work(2)の分が
ないのでエラーとなる。4 "abc"
"123"
"def" Dim work(2) As Stringwork(0)=abc
work(1)=123
work(2)=def Dim work(2) As Integerwork(0)=0
work(1)=0
work(2)=05,6 "abc","123","def" Dim work(2) As Stringwork(0)=abc
work(1)=123
work(2)=def Dim work(2) As Integerwork(0)=0
work(1)=0
work(2)=07,10 0
123
0 Dim work(2) As Stringwork(0)=abc
work(1)=123
work(2)=def Dim work(2) As Integerwork(0)=0
work(1)=123
work(2)=08 0 123 0 Dim work(2) As Stringwork(0)に1行全て読み込まれ、
work(1),work(2)の分がないので
エラーとなる。 Dim work(2) As Integerwork(0)=0
work(1)=123
work(2)=09 0 123 0 Dim work(2) As Stringwork(0)に1行全て読み込まれ、
work(1),work(2)の分がないので
エラーとなる。 Dim work(2) As Integerwork(0)=0
work(1)=123
work(2)=011,12 0,123,0 Dim work(2) As Stringwork(0)=0
work(1)=123
work(2)=0 Dim work(2) As Integerwork(0)=0
work(1)=123
work(2)=0Line Input命令 (Input命令と異なるものだけ) 5,6 "abc","123","def" Dim work(2) As Stringwork(0)に1行全て読み込まれ、
work(1),work(2)の分がないので
エラーとなる。 Dim work(2) As Integer型不一致のエラーとなる。 11,12 0,123,0 Dim work(2) As Stringwork(0)に1行全て読み込まれ、
work(1),work(2)の分がないので
エラーとなる。 Dim work(2) As Integer型不一致のエラーとなる。
読み込んだデータを記憶しておく変数の型が文字列型の場合と数値型の場合とでは記憶のされ方が異なる。
Line Input命令では読み込んだデータを記憶しておく変数は文字列型だけが指定できる。
(5) データ入力のされ方 | |
Copyright © 2002 Hiroshi Masuda |