Module
Contents
Index 🔎︎

# Input# Statement

オープン済みの順編成ファイルからデータを読み取ります。

## 構文:

Input #FileNumber As Integer; var1[, var2[, var3[,...]]]

## パラメーター:

FileNumber: 読み取るデータを含むファイルの番号。読み取るファイルは、Open ステートメントに INPUT キーワードを指定して、事前にオープンしておく必要があります。

var: オープン済みのファイルから読み取った値を格納する、数値型ないし文字列型の変数。

Input# ステートメントは、オープン済みのファイルから数値ないし文字列を読み取り、これらの値を 1 つまたは複数の変数に格納します。数値は、次に来るキャリッジリターン (ASC=13)、ラインフィード (ASC=10)、スペース、コンマまでのデータが、1 度に読み取られます。文字列は、次に来るコードがキャリッジリターン (ASC=13)、ラインフィード (ASC=10)、コンマまでのデータが、1 度に読み取られます。

オープン済みファイル中にあるデータおよびデータ型は、「var」に指定する変数の順序と一致している必要があります。数値以外のデータを数値変数に代入すると、「var」の変数には「0」値が格納されます。

コンマで区切られているレコードを文字列値に割り当てることはできません。 同じようにファイル内の引用符 (") も無視されます。 ファイルからこのような文字を読み取る場合は Line Input# 文を使用し、テキストファイル (印刷可能な文字のみで構成されるファイル) を読み取ります。

データの読み取り中にファイル末尾に到達すると、エラーが発生してプロセスは終了させられます。

## 例:

    Sub ExampleWorkWithAFile

    Dim iCount As Integer

    Dim sName As String

    Dim sValue As Integer

    Dim sFileName As String

    sFileName = "c:\data.txt"

    iCount = Freefile

    'ファイルへデータを書き込む（データは後のインプット時に読み込みます）

    Open sFileName For Output As iCount

    sName = "Hamburg"

    sValue = 200

    Write #iCount, sName, sValue

    sName = "New York"

    sValue = 300

    Write #iCount, sName, sValue

    sName = "Miami"

    sValue = 459

    Write #iCount, sName, sValue

    Close #iCount

    iCount = Freefile

    ' Read data file using Input

    Open sFileName For Input As iCount

    Input #iCount; sName, sValue

    MsgBox sName & " " & sValue

    Input #iCount; sName, sValue

    MsgBox sName & " " & sValue

    Input #iCount; sName, sValue

    MsgBox sName & " " & sValue

    Close #iCount

    End Sub