Free Pascal
- Delphi,Turbo Pascal系の言語を
WEBサイト
公式HP
Free Pascal Wiki
仕様等
変数:レコード型
変数:一次元配列
参考URL
コンソールモードPascalプログラミング
https://wiki.freepascal.org/Console_Mode_Pascal/ja
計算機数学 –Pascalプログラミング– - 上越教育大学
https://www.juen.ac.jp/math/nakagawa/computer.pdf
テストプログラム
実行時のコマンドラインパラメータ(文字)を取得、表示
- 2021-09-18
program cmdParamTest;
var
i: integer;
begin
for i := 0 to ParamCount do begin
Write(i);
Write(' : ');
WriteLn(ParamStr(I));
end;
end.
- ParamCountで
上記ソースをcmd.pas 等で保存し、
fpc cmd.pas
として、実行形式、cmdが作成される。
実行結果は以下のような感じです。
$ ./cmd aaaa bbb dddd 0 : /home/isao/free_pascal/cmd 1 : aaaa 2 : bbb 3 : dddd
テキストファイルの読み込み
- https://wiki.freepascal.org/File_Handling_In_Pascal にあったサンプルをfpc でオプションを付けずにコンパイル出来るように、AssignFileをAssign、CloseFileをCloseに変換するなどしたもの。
program ReadFile;
uses
Sysutils;
const
C_FNAME = 'textfile.txt';
var
tfIn: TextFile;
s: string;
begin
// Give some feedback
writeln('Reading the contents of file: ', C_FNAME);
writeln('=========================================');
// Set the name of the file that will be read
//AssignFile(tfIn, C_FNAME);
Assign(tfIn, C_FNAME);
// Embed the file handling in a try/except block to handle errors gracefully
// try
// Open the file for reading
reset(tfIn);
// Keep reading lines until the end of the file is reached
while not eof(tfIn) do
begin
readln(tfIn, s);
writeln(s);
end;
// Done so close the file
//CloseFile(tfIn);
Close(tfIn);
// except
// on E: EInOutError do
// writeln('File handling error occurred. Details: ', E.Message);
// end;
// Wait for the user to end the program
writeln('=========================================');
writeln('File ', C_FNAME, ' was probably read. Press enter to stop.');
readln;
end.
DelphiのプログラムのWEB化
計算条件をテキストボックスに入力し、実行ボタンをクリックすると計算結果を表示するような簡単なDelphiのプログラムをWEB化する場合は、PHPでHTMLを生成してFORMタグを用いた画面を作成し、POSTで入力内容を値を渡すようなCGIプログラムを作成し、その際に入力内容をPHPなどのシェル実行関数でFreePascalのコマンドを実行し内容を受け取れば、Delphiの計算方法のプログラムコードをある程度生かしてDelphiプログラムをWEBアプリへすることができます。出来るといってもそれほど複雑でない場合になります。結果でグラフ作成などがある場合などはJavaScriptなどのフリーのグラフ作成ライブラリを組み合わせると出来ることも増えます。
FreePascalはUbuntu22.04LTSなどで比較的容易に導入できます。Ubuntu22.04LTSのServer版でも同様です。VPSで利用可能なOSの一つになっている事が多い。
Delphi関係の外部リンク
- Delphi6ローテクTIips