この記事は 「大石泉すき」アドベントカレンダー 6日目の記事となります。
6日目は、GUIアプリケーションの開発環境であるDelphiであえて標準出力してみます。
概要
以下のような方を対象にした内容になります。
- 大石泉P
- 大石泉に興味がある人
- Delphiでプログラミングを始めたいと思っている人
記事内のコードは以下の環境で実行しています。
OS: Windows 10
Delphiバージョン: 10.3 Community Edition
Delphiについて
かつてWindows用のデスクトップアプリケーション開発で勇名を馳せたGUI開発環境&言語です。
幾多の変遷を経て、現在ではAndroid、iOSのアプリ開発も行えるようになっています。
そして、制限はあるものの無料で利用することもできます。
無料版は Delphi 10.3 Community Edition からダウンロードできるので是非お試しあれ。
Delphiで標準出力
プロジェクト設定
Delphiを起動したら ファイル > 新規作成 > コンソールアプリケーション
でコンソールアプリケーションの雛型を作成します。
プロジェクト > オプション
メニューからビルド設定を変更します。
初期状態では プロジェクトルート/Win32/Debug
ディレクトリ以下にEXEが出力されます。
ここでは分かりやすくするためにプロジェクトルート以下に出力されるように変更しています。
プロジェクトの基本設定を終えたら、標準出力の実装です。
プロジェクトファイル(拡張子が dproj
)に実装します。
プロジェクトファイルは他の言語のmain関数のようなものととらえてください。
Writeln
命令に引数で文字列を渡せば標準出力に文字列の内容が出力されます。
Ctrl + F9
でコンパイルしてEXEを出力します。
program BitPerformer;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
begin
Writeln('大石泉すき');
end.
プロジェクトのルートディレクトリ直下にEXEファイルが出力されます。
コマンドプロンプトにて dir
コマンドで確認してください。
EXEファイル名を入力すると 大石泉すき
と出力されます。
引数で指定した回数だけ出力する
このままでは面白味がないし、 ビット・パフォーマー とは言えないので少しコードを追加します。
コマンドラインアプリケーションと言えば引数での挙動の変化が醍醐味なので引数で指定した回数だけ出力するように変更します。
program BitPerformer;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
var
n, i: Integer;
begin
if ParamCount >= 1 then begin
n := StrToIntDef(ParamStr(1), 1);
if n > 5 then begin
n := 5;
end;
end else begin
n := 1;
end;
for i := 1 to n do begin
Writeln('大石泉すき');
end;
end.
1~5の値を指定するとその回数分だけ、6以上の値を指定した場合は5回、引数が無い、または数値以外の文字列を指定した場合は1回だけ出力するという実装です。
Delphiの言語仕様を知っている人は少ないと思うので以下にポイントとなるワードの解説を記しました。
ParamCount: 引数の数
ParamStr: 引数を格納したリスト(インデックス0はアプリケーション名になる)
StrToIntDef: 渡された文字列を整数に変換する、変換できない場合は指定した値を返す
以下が実行結果になります。