Pascal」タグアーカイブ

VectorScriptのインクルード その1

知ってましたか?インクルード。VectorScriptの実行環境には、複数のソースファイルに分割して記述されたコードをまとめて実行する機能がある。あ、言い換える、ソースコードを複数のソースファイルに分けて書くことができる。

VectorScriptのスクリプトエディタには貼り付けることのできるコード量の上限があって。は、ひとつのプログラムがソースで32kbytesまで、字数にして32,000文字、全角なら16,000文字、A4に1行に50文字くらいだとして、1ページに60行入るとして、1ページに3,000文字、10ページちょっと。ソースだからステップ数(行数)でいうと600ステップ。えっ、そんなに少ないの?これだとすぐに限界がきちゃう。

VectorScriptでそんなに長いプログラムを書くことがあるのか?という疑問もおありでしょうが、いろいろなプログラムを作っているとすぐにぶつかりますね。特にダイアログ関係はアイテム数が多いとぐんぐんコードが増えていく。図面に色々な図形を自動描画させたりすれば、これもまたコードが増える。プログラマの欲望としてプログラムには1度に大量のことをやらせたいのだ。上限なんてとんでもねえ。

もう一つプログラムが長くなるのがライブラリ化。可読性を高めるために、たとえば文字列切り出しなどの小技なプログラムをfunction/procedureに書いておく。一度役に立ったものは、別のプログラムでも使えるかもしれない。どんどんたまっていく。使うところだけ切り離すのは手間。

そこでインクルード(INCLUDE)の登場。言語によってはimportって記述する。ソースコードを分割して記述できる機能で多くの言語に備わっている。VectorScriptでも実装されている。VectorScriptのスクリプトエディタに貼り付けたメインとなるソースの他に、どこかのフォルダにサブとなるソースファイル(テキスト形式)を置いておいて、コンパイル・実行時に読み込んでくれる。

ということは、メインとなるソースは図面ファイルの中にあって、プログラムの一部が外部のソースファイルにある。図面ファイルだけではプログラムが動かない。

外部にソースファイルを置く、ということはファイルのパス名(通り道の意味のpath)、ファイルパスとか呼ばれている。macOSでは「Macintosh HD:アプリケーション:…..」のようなもの、Windowsでは「C:\….」からはじまっている記述方法、が絶対パス、これに対して「../download」のような一つ上の「download」フォルダ、の意味を示す記述方法、相対パスがある。絶対パスで参照するか、相対パスで参照するか、いずれにしてもこのパス名をソースの中に記述することになる。自分のマシンだけでプログラムを動かすのなら絶対パスでもいいけど、別のマシンでもソースを修正することなく動いて欲しい。そう、マシンが変わったらパス名が違うし、フォルダが変わっても絶対パスは変わる。

VectorScriptのインクルード その2」に続く