前回、コンソールアプリケーションで Write/Writeln について述べました。
今回は、Read についても紹介したいと思います。
Read は前回の記事でも紹介したように標準入力から値を読み出す関数です。
ただ、前回は Readln; と書いて、開業を待っただけでした。
今回は、きちんと値を読み込んでいます。
非常に簡単で、次のように書くだけです。
01 program Project1;02 03 {$APPTYPE CONSOLE}04 05 var06  Str: String;07 begin08  Write('文字列を入力してください: ');09  Readln(Str);10  Writeln('入力された文字列は "' + Str + '" です');11  Readln;12 end.
上記のコード9行目で行を読み込んでいます。
Readln なのでエンターキー(リターンキー)が入力されるまで読み込みます。
たとえば、上の行を Read に変えるとどうなるかというと……
01 program Project1;02 03 {$APPTYPE CONSOLE}04 05 var06  Str: String;07 begin08  Write('文字列を入力してください: ');09  Read(Str); // 改行コードまで文字列を読み込むが、改行コード自体は読み込まない10  Writeln('入力された文字列は "' + Str + '" です');11  Readln; // 9行目で入力された改行コードをここで読み込むのですぐ終わってしまう12 end.
一瞬でコンソールが閉じます。
というのも、結局 Read は値を読み込む区切りにエンターキーを利用しています。
上のコメントにあるとおり、改行コードを入れないと文字列の読み込みが終わらないからです。
また、Write/Writeln と同じように複数の値を読み込むこともできます。
複数の値を読み込むには、下記の様にします。
program Project1;{$APPTYPE CONSOLE}varStr: String;Int: Integer;beginWrite('文字列と数値を入力してください: ');Readln(Str, Int); // こういう入力もできるが、各値を取得するためには改行が必要Writeln('入力された文字列は "', Str, '" 数値は "', Int, '" です');Readln;end.
しかし、コメントにあるとおり、値を1つ確定する毎に改行が必要なので、実行結果はこんな風になります。
ですので、結局 Read を使うときは Readln として、1個1個値を呼んでいくのが良いでしょう。
次回は、いままで紹介した標準入出力をプログラムから変更する方法を紹介します。
0 件のコメント:
コメントを投稿