キーボードから、1行の入力行を読みます。
構文:
Line Input [;] [promptstring {;|,} ] stringvariable1
又は
Line Input [;] promptstring {;|,} stringvariable2 , maxlength
パラメタ:
promptstring
入力を待っているときに表示するプロンプト。
セミコロン (;) が続く場合、疑問符 ("? ") がプロンプトに追加されます。 カンマが続く場合は、何も追加されません。
stringvariable1
可変長または固定長 (および既知) の文字列。テキスト行を受け取ります。
stringvariable2
{z|w} 文字列ポインタまたは {z|w} 文字列変数の逆参照 (どちらも文字列バッファ サイズは不明) を参照して、テキスト行を受け取ります。
maxlength
NULL ターミネータを含む、文字列バッファに書き込むことができる最大文字数。
記述:
キーボードから 1行のテキストを読み取り、それを文字列変数に格納します。
promptstring(存在する場合)が現在のカーソル位置の画面に書き込まれ、読み取られた文字が画面のプロンプトの直後に表示されます。
プロンプトが指定されていない場合、文字は現在のカーソル位置に表示されます。
Line Input の後のオプションの先頭のセミコロン(
;)は、
Print 命令文のオプションの末尾のセミコロンに似ています。
すべての文字が表示された後、カーソルは同じ行に残ります。それ以外の場合、カーソルは次の行の先頭に移動します。
Line Input の編集機能には制限があります。左右のカーソルキーを使ってテキストを移動したり、文字を消去したり挿入したりできます。 より優れたユーザーインターフェイスが必要な場合は、カスタム入力ルーチンを使う必要があります。
次の 2 つの構文を使用できます:
-
最初の構文は、文字列バッファー サイズ (stringvariable1 によって提供される) が可変または固定 (および既知) の場合にのみ許可されます。 この最初の構文では、promptstring パラメータはオプションです。
-
maxlength パラメーターを使用した 2番目の構文は、文字列バッファー サイズ (stringvariable2 によって提供される) が不明な場合にのみ使用できます。 これは、逆参照された Zstring/Wstring ポインター、または参照によって渡された Zstring/Wstring 変数で発生します。
これは、読み取るテキスト行を切り詰めたり、提供された文字列バッファの割り当てられたデータを超えてオーバーフローしないようにするために使えます。 この 2番目の構文では、空の場合("" を使用)でも promptstring パラメーターが必須です 。
例:
Dim s As String
Line Input "Enter a line"; s
Print "Full line that you entered:"
Print "'"; s; "'"
Print
Const maxlength = 11 '' max 10 characters plus 1 null terminal character
Dim pz As ZString Ptr = CAllocate(maxlength, SizeOf(ZString))
Line Input "Enter a line"; *pz, maxlength
Print "First " & maxlength - 1 & " characters that you entered:"
Print "'"; *pz; "'"
Deallocate(pz)
旧例:
Dim x As String
Line Input "行入力して下さい:", x
Print "貴方の入力は '";
x;"'"
Sleep
バージョン:
- fbc 1.10.0 より前は、2番目の構文 (maxlength パラメーターを使用) はサポートされていませんでした。
QBからの違い:
-
QBASIC は、「促し」テキストに、直定数文字列だけを許容しました。
FreeBASIC は、どんな変数や、定数文字列表現も許容します。
参照: