Input #

ファイル, 通信ポート, データベース, またはデバイスから、文字列か数値をデータ入力し、変数に保存します。

書式
Input #ポート番号, 変数名 [ , 変数名, 変数名,... ]

パラメーター

ポート番号
ファイル, 通信ポート, データベース, またはデバイスを示すID番号です。ファイル番号は、ROpen, WOpen, AOpen などのステートメントで指定した番号です。通信ポート番号は、OpenCom (RS-232C)またはOpenNet (TCP/IP)ステートメントで指定した番号です。データベース番号は、OpenDBステートメントで指定した番号です。
デバイスIDは以下の数値です。

  • 21 RC+
  • 24 TP (TP1のみ)
  • 20 TP3
変数名
データを受け取る変数名を指定します。

解説
Input # 命令は、ポート番号で指定したデバイスから数値または文字列データを受け取り、そのデータを指定する変数に入力します。

注意


  • 使用可能なコントローラーについて

    T/VTシリーズでは、コントローラーのRS-232Cポートを指定した場合、動作時エラーとなります。

  • 数値入力の規則

    数値入力をする際、デリミター以外の非数値データがあると、その非数値データと、それ以降のデータは切り捨てられます。

  • 文字列入力の規則

    文字列に代入するときは、数字とアルファベットが文字として扱われます。

  • 最大データ長

    本命令が一度にあつかえる最大データ長は、256 Byteです。ただし、データベースが対象の場合は、4096 Byteが最大データ長になります。通信ポート(TCP/IP)が対象の場合は、1024 Byteが最大データ長になります。

  • その他の Input # 命令に関する規則

    • 複数の変数を代入先に指定するときは、それぞれに代入する数値データは、必ずデリミター (",")または空白 (" ")で区切ります。

    • 複数の文字列変数、および数値変数と文字列変数の両方を指定するときには、数値データは、必ずデリミター (",")、または空白 (" ")で区切り、文字列データは必ずデリミター (",")で区切る必要があります。

    • 入力データ型は代入先の変数型に適合していなければなりません。

    • コントローラー間で、通信ポートを使って文字列変数, 数値変数をやりとりする例

    • 送信側 (どちらのパターンでもOKです。)

      Print #PortNum, "$Status,", InData, OutData
      Print #PortNum, "$Status", ",",InData, OutData
      
    • 受信側

      Input #PortNum, Response$, InData, OutData
      

起こりやすいエラー

  • 指定された変数の数と入力データの数が合わないとき

    命令で指定された変数の数とデバイスから受け取った数値データの数が合わないと、エラー2505になります。

参照
Input, Line Input, Line Input #, Print #, Read, ReadBin

Input #使用例
下記はInput # ステートメントを使った簡単な例です。

Function GetData
    Integer A
    String B$

    OpenCom #1
    Print #1, "Send"
    Input #1, A   'ポート#1から数値を取得
    Input #1, B$  'ポート#1から文字列を取得
    CloseCom #1
Fend