専用エディタと最短プログラム
この章では、HSP標準のスクリプトエディタの主な使用方法と最短スクリプトを紹介します。
標準スクリプトエディタには2種類ございまして、どちらもポットの形をしたアイコンです。
ファイル名称も類似しており、「hsed3.exe」と「hsed3le.exe」となっています。
「hsed3le.exe」は前バージョンと同機能のものですので、
この章では新機能紹介も兼ねて「hsed3.exe」側の扱い方について紹介します。
エディタの使用方法と言えども、大半の機能は高機能エディタに当たり前の様に付いているものばかりです。
前章でも書きましたが、
・タブページによるスクリプト編集
・特定キーワードの色分け
・複数回アンドゥ(元に戻す)・リドゥ(やり直す)
といったものは、皆さんがお使いのエディタに標準搭載されているものではないでしょうか?
そういったものはココでは割愛し、HSP特有のものを紹介します。
まずは、カーソルメニュー(L)から。
先頭行に移動(T)・最終行に移動(B)、は字のまんまで、キャレット(下記画面の白い縦棒位置)を
最上段の左端、または最下段の左端に移動させます。
指定行に移動(J)はエディタによっては入っている機能ですね。(自分のエディタには入っている)
メニューを選択すると、行数を入力する子ウィンドウが表示され、行として正しいならその行に移動し、
不適切な行、もしくはキャンセルならば、移動しないというものです。
ラベル一覧(L)は通常エディタであれば存在しないものですので書いておきましょう。
HSPのスクリプトは通常、上から下へ・同一行であれば左から右へ処理されていきます。
しかし、上から下へ流れるだけでなく、以前に行った上のほうの処理を再実行したいという場合もあるはず。
HSPでは上の方にジャンプする(処理を戻す)命令が用意されているのですが、
どこにジャンプするか、という目印が必要になるわけです。
ラベルはその目印のことで、複数あるラベルの行のうちの1つに移動するものです。
このラベルについては、後の章で再度説明をしますので、現在はそんなものがあるという位で結構です。
続きまして、HSP(P)メニュー。
コンパイル+実行(C)は、スクリプトエディタに書いた内容の動作チェックを行う際に使用します。
このメニューは頻繁に利用します。ショートカットキー「F5」一発と覚えておきましょう。
実行すると、新規スクリプトなら「hsed3.exe」と同じフォルダ、
保存スクリプトなら保存ファイルと同じフォルダに「hsptmp」「hsptmp.i」「obj」を自動生成します。
スクリプトファイルが未保存の場合でも実行できるようにするため、
現在のスクリプトを一旦ファイルとして保存する必要があるのでしょう。
「hsptmp」はその為に一時的に書き出したファイルであると思われます。
「hsptmp.i」は「hsptmp」と同じ様なものですが、一部のスクリプトが展開されます。
マクロやモジュールと呼ばれるものがコレに該当するのですが、
標準命令とはいえ少し高度な内容ですので、紹介は結構先の章とさせていただきます。
紹介ページまでしばらくお待ちいただくか、HSP2講座をご覧ください。
「obj」の中身を開いてもバイナリ形式ですので暗号化されたように読み取ることができません。
これはスクリプトを元に変換された中間オブジェクトファイルと呼ばれるものです。
HSPに限らずあらゆる言語は、ソーススクリプト(原始プログラムとも言う)から
いきなり内容を解釈して実行するという手順は踏みません。
人間にとってわかりやすいデータコンピュータにとってわかりやすいデータに変換してから解釈します。
なぜそうするかという説明もしていくと、それだけでかなりのテキストになってしまいますし、
管理人が考え出したものではなく、博識であるわけではない為に割愛いたします。
まぁ、とりあえずHSPは実行の際に中間オブジェクトファイルというのが必要であるということです。
これらはコンパイルの度に作成されますので消しても問題ありません。
実行(R)は、先ほどの中間オブジェクトを作成せずに実行するものです。
作成しないというのはつまり、現在書かれているスクリプトを実行するというわけではなく、
以前コンパイルした「obj」ファイルを再実行するということですので、
当然「obj」ファイルが存在しなければエラーとなり実行することができません。
コンパイルのみ(P)は上記の逆で、実行結果を確認せずに中間オブジェクトのみを作成します。
おおまかな命令構文チェック(パラメータまでは確認していない)や
先ほど出てきた指定ラベルの存在チェックを行う際に有効です。
うまくいっているか・いかなかったかは処理終了後に出力される結果レポートにて確認でき、
結果レポートの最下行に「No error detected. 」というメッセージが出ていればOKです。
エラー表示(E)は実行結果の確認もしませんしコンパイルも行いません。
前回の行った時に出たエラー内容をリコンパイルせずに再度確認したい場合に有効です。
オブジェクトファイル作成(B)は、現在のスクリプトファイル名で中間オブジェクトを作成します。
コレは、HSPの命令に中間オブジェクトから読み込んで実行することが可能である為に用意されています。
START.AX作成(S)は、EXEが一番初めに読み込む中間オブジェクトファイルを作成するというものです。
EXE内には複数のファイルを埋め込むことが可能で、実行するデータ(中間オブジェクトファイル)もまた
埋め込むファイルの一つです。
すぐ上に書いたように、自分でいくつもの中間オブジェクトファイルを作ることが可能で、
HSPは中間オブジェクトファイルであれば読み込んで実行することができるようになっています。
中間オブジェクトが複数埋め込まれていると、本来実行すべき中間オブジェクトがどれかわかりません。
そこで、HSPはEXE内の初めに読み込んで実行する中間オブジェクトはコレだ、と決めているわけです。
そのファイル名が「start.ax」なのです。
オブジェクトファイル作成メニューからEXEが初めに実行する中間ファイルを作成しても良いのですが、
このメニューは現在のスクリプトファイル名で中間オブジェクトを作成しようとします。
その為、手作業でファイル名を「start.ax」に変える必要があるので、
初めから「start.ax」ファイルを作成するメニューが別に用意されているのです。
実行ファイル自動作成(A)は、メニュー1つを選択するだけで、現在のスクリプトを元にEXEを作成するという
大変便利なメニューとなっています。
通常はSTART.AX作成やPackFile(EXEに埋め込むファイル)編集という手順を踏むのですが、
EXEに埋め込むのが中間オブジェクトファイルとランタイムだけでよいという最小構成の場合、
このメニュー一発でEXEを作成することができます。
外部ファイル実行(F)は、コンパイル機能を持たない通常エディタ(例えばメモ帳等)で作成したスクリプトを
実行・または中間オブジェクトファイルの作成をする為に用意されています。
「hsed3.exe」以外のコンパイル機能がないお気に入りエディタが存在する場合にご利用ください。
予約キーワード一覧(K)は変数名にすることができないキーワードを一覧表示するものです。
変数というのは、後の章で紹介していきますが、
可変する数値や変動する文字列値を入れておく「入れ物」のことです。
その「入れ物」に名前をつけて、表示や入れ替えなどをする時にその名称で指定するのです。
変数には自分で好きなわかりやすい名前をつけることができますが、
変数名と命令名を一緒にすると、変数を指しているのか命令を指しているのか判断できません。
そのために変数名の規則の一つとして命令名と一緒にはできないとなっているのです。
HSPを使い続けている人にはどんな命令名があるから使えるか使えないかが判断できますけど、
使い始めて間もない人であればどんな命令名があるのか把握できていないこともあるでしょう。
その為、使えないワード一覧表が必要であり、予約キーワード一覧が該当します。
起動オプション(O)はコマンドラインという起動時に受け取るパラメータにすることができます。
コマンドラインはdir_cmdlineマクロで確認することができます。
DOS時代からパソコンを使い続けている方はご承知のことと思いますが、
実行ファイルの起動時にパラメータを渡し、何か処理をさせることができるものがあります。
例えばボリュームを調節する「sndvol32.exe」というものなんかが当てはまります。
スタートメニューのファイルを指定して実行すると言うもので「/t」をパラメータとして渡すと、
通常のマスタボリューム調節画面ではないものが出てきますよね。
このように、起動時に何かパラメータを受け取ると異なる処理をさせたいファイルの作成用に、
パラメータを渡す設定がコレになるのです。
Debugモード表示(D)は選択しても、メニュー左側にチェックマークが付くだけで何も起こりません。
起動時、メインのウィンドウ横に現在の変数情報やログ情報等を確認できるようになります。
チェックをはずしていても、このウィンドウはスクリプト実行時にエラーが発生しても確認できます。
HSP拡張マクロを使用する(M)はメニュー選択をしてもウィンドウや何かが起こるわけではありません。
Debugウィンドウ表示と同じくスクリプト実行時に初めてわかるものですが、
特定の命令(マクロ)が使える・使えなくなるというものでDebugウィンドウの表示よりもわかりにくいです。
マクロというワードが先ほども出てきましたが、マクロというのは
独自の構文を定義して、処理を自動化するように言語の拡張を行うことです。
HSPでは、一部の命令やシステム変数が拡張マクロとなっており、
これらを使用する為には、このHSP拡張マクロを使用する設定にしておかなければなりません。
設定しておくと「HSPdir/common/hspdef.as」が読み込まれるようになります。
ツール(T)メニューは実行ファイル作成・他スクリプト関係・オプションを扱うものです。
PACKFILE編集(E)は、先ほど出てきたもので実行ファイルに埋め込むものを編集します。
この作業では実際に指定ファイルをパックするわけではなく、リストアップするだけに過ぎません。
編集ウィンドウの[OK]ボタンを押すと、packfileがフォルダに生成されます。
このファイルは実行ファイル作成時に必要なもので、最低start.axを指定する必要があります。
DPMファイル作成(P)のDPMというものが、PackFileの実体のことです。
実行ファイルを作成するときは自動的にこのDPMファイルが作成されてEXEに埋め込まれますが、
EXEには埋め込まないが、ファイル隠蔽の目的の為にもこのDPMファイル作成が有効です。
複数のファイルを1ファイルに出来、利用者からファイルを簡単に読み取られなくなります。
EXEファイル作成(M)が、実際の実行ファイル作成メニューです。
何度も書いたように、このメニュー実行の為には、中間オブジェクト作成・PackFile編集が必要です。
FAQにも用意していますので、わかりにくい場合はご利用してください。
スクリーンセーバー作成(S)は、もう1つの実行ファイル作成となります。
徐々に本来の意味を失いつつある「画面焼き付きを防ぐ」ことを目的とした
動作し続ける画面を作る為の実行ファイルを作成します。
ご存知の通り利用者が何も操作していない時に表示される画面で、縁の下の力持ちです(?)
ソースフォルダを開く(O)は、後で紹介するオプションで設定されている
カレントフォルダを新しいウィンドウで開くことが出来るメニューとなっています。
サンプルスクリプト参照(F)は、標準搭載の「sampview.exe」を実行するメニューです。
標準付属のHSPサンプルをスクリプトから実行・確認したくなったときに利用します。
オプション(O)は、スクリプトエディタに対し設定をするものです。
エディタ設定情報保存先や起動するヘルプの他、表示・色わけに関する設定・外部ツールの設定を行います。
外部ツール(X)メニューは、オプションで外部ツールを設定するとこのメニューに表示されます。
初期状態では何も設定しない為、実行できません。
設定するとランチャーとしてスクリプト上から簡単に呼び出せるようになります。
大体はこんなところでしょうか…。
それでは続いて、早速このスクリプトエディタを使いまして冒頭に述べた最短スクリプトを紹介しましょう。
これ以上短いスクリプトは、世界中のどこを探しても見つからないことと自負しています。
上の方で書いたように、実際に確認する場合は、F5ですよ。
それでは、F5を押してみてください。
え?まだ何も書いていない?
はい、それが最短スクリプトです。
エディタを起動してから1秒以内に実行できる最もシンプルなスクリプトです。
パソコン内に白いウィンドウが表示されていれば成功です。
バージョン2から変更仕様として、スクリプトの何も書かれていない所まで到達すると終了していたものが
バージョン3からは何も書かれていないところまで来ると一時中断するように変更されました。
C言語等を先に経験している方には涙ものではないでしょうか?
なんと、何もしていないのにタイトルバーが付いており、右上には最小化や閉じるボタンが付いています。
それ以外の方には、それで?といった感じでしょうね…。
自分も初めはCからの出発であった為、初めて見たときは驚いたものです!
わからないですか、そうですか…。
コレがわからない方でもHSPではGUIプログラムを非常に簡単に作成できますので是非覚えてみてください。
とりあえずこの章はコレくらいで終了致します。