10
0

More than 3 years have passed since last update.

Delphiで「大石泉すき」を標準出力する

Posted at

この記事は 「大石泉すき」アドベントカレンダー 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を起動したら ファイル > 新規作成 > コンソールアプリケーション でコンソールアプリケーションの雛型を作成します。

Delphi_プロジェクト設定.png

プロジェクト > オプション メニューからビルド設定を変更します。
初期状態では プロジェクトルート/Win32/Debug ディレクトリ以下にEXEが出力されます。
ここでは分かりやすくするためにプロジェクトルート以下に出力されるように変更しています。

Delphi_出力先設定.png

プロジェクトの基本設定を終えたら、標準出力の実装です。
プロジェクトファイル(拡張子が dproj )に実装します。
プロジェクトファイルは他の言語のmain関数のようなものととらえてください。

Writeln 命令に引数で文字列を渡せば標準出力に文字列の内容が出力されます。
Ctrl + F9 でコンパイルしてEXEを出力します。

program BitPerformer;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils;

begin
  Writeln('大石泉すき');
end.

プロジェクトのルートディレクトリ直下にEXEファイルが出力されます。
コマンドプロンプトにて dir コマンドで確認してください。

EXE出力.png

EXEファイル名を入力すると 大石泉すき と出力されます。

出力.png

引数で指定した回数だけ出力する

このままでは面白味がないし、 ビット・パフォーマー とは言えないので少しコードを追加します。
コマンドラインアプリケーションと言えば引数での挙動の変化が醍醐味なので引数で指定した回数だけ出力するように変更します。

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: 渡された文字列を整数に変換する、変換できない場合は指定した値を返す

以下が実行結果になります。

複数回出力.png

10
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
0