システムドキュメント
このテーマの旧式のコマンドは、通常はFile および Folder テーマ、およびそれに割り当てられたFile、Folder、 ZipFile そして ZipFolder クラスを使用して有効的に置き換えることができます。これらのコマンドによりファイルやフォルダをオブジェクトとして扱うことができます。
ドキュメント参照番号
Open document、 Create document そして Append document コマンドを使用してドキュメントを開きます。 ドキュメントを開いたら、RECEIVE PACKET および SEND PACKET などのコマンドを使用して、ドキュメントからの/への文字の読み出し、書き込みができます。 ドキュメントでの作業が終了したら、通常 CLOSE DOCUMENT コマンドを使用してドキュメントを閉じます。
全ての開かれたドキュメントは、これらのコマンドから返されたドキュメント参照番号 (DocRef) を使用して参照されます。 DocRef は開かれたドキュメントを固有に識別します。 これは正式には時間タイプの式です。 開かれたドキュメントを操作する全てのコマンドは、引数としてDocRef を受け取ります。 誤ったDocRef をこれらのコマンドの1つに渡すと、ファイルマネージャエラーが発生 します。
ドキュメントは、一つのプロセスにつき一つのドキュメントのみ読み/書きモードで開くことができます。 読み込み専用 モードでは、単一のプロセス内で複数のドキュメントを開くこともできますし、複数のプロセスが複数のドキュメントを必要な数だけ開くこともできます。ただし読み/書きモードでは、一度に同じドキュメントを2つ開くことはできません。 Create document と Append document コマンドは、自動的にドキュメントを読み/書きモードで開きます。 Open document コマンドを使用する場合のみ、開くモードを選択できます。
コマンドがプリエンプティブプロセス から呼び出された場合、そのDocRef 参照はそのプリエンプティブプロセスからしか使用することはできません。 コマンドがコオペラティブプロセスからコールされた場合、その DocRef 参照は別のコオペラティブプロセスでも使用可能です。
Documentシステム変数
Open document、 Create document、 Append document および Select document コマンドを使用すると、標準的なファイルを開くまたは保存するダイアログボックス経由でドキュメントへアクセスすることができます。 標準ダイアログを通してドキュメントにアクセスすると、Document システム変数 にドキュメントの完全なパス名が返されます。 このシステム変数は、コマンドの引数リストに表示される引数document と区別されなければなりません。
相対パス名および絶対パス名について
この章のルーチンのほとんどは、ドキュメント名、相対パス名、あるいは絶対パス名を受け付けます:
- 相対パス名 はディスク上の任意のディレクトリを起点とし、そこから目的のファイルやフォルダーまでの位置関係を記述するものです。 ドキュメント名のみを渡した場合、それは相対パス名を使用しているとみなされます。 4Dの場合、通常相対パスの起点はproject フォルダー,、つまり.project ファイルが格納されているフォルダーとなります。 相対パス名は異なる環境に対してアプリケーションを配布する場合に特に有用です。
- 絶対パス名 はボリュームのルートを起点として場所を記述します。データベースフォルダーの所在場所に依存しません。
コマンドに渡されるパス名が相対・絶対どちらで解釈されるべきかを決定するため、4Dは各プラットフォームごとに特定のアルゴリズムを適用します。
Windows
- パス名が二文字だけで構成され、二文字目がコロンの場合 ':'
- パス名の二文字目と三文字目がそれぞれ':'とバックスラッシュ (円マーク) の場合
- パス名が "\" で始まる場合
- これらの場合にはパス名は絶対パスと解釈されます。
その他のケースはすべて相対パスと解釈されます。
CREATE FOLDER コマンドの例題:
CREATE FOLDER("lundi") // 相対パス
CREATE FOLDER("\Monday") // 相対パス
CREATE FOLDER("\Monday\Tuesday") // 相対パス
CREATE FOLDER("c:") // 絶対パス
CREATE FOLDER("d:\Monday") // 絶対パス
CREATE FOLDER("\\srv-Internal\temp") // 絶対パス
4D のコードエディターでエスケープシークエンス はの使用が可能です。 エスケープシークエンスはバックスラッシュ\ (日本語フォント環境では円マークから始まり、その後に文字が続きます。 たとえば、\t はTab 文字のエスケープシークエンスです。
\ 文字は、Windows においてはパス名の区切り文字としても使用されます。 ほとんどの場合において 4D は、シングルバックスラッシュ \ をダブルバックスラッシュ \\ に置き換えることにより、コードエディターに入力された Windows のパス名を正確に判断します。 たとえば、C:\Folder は C:\\Folder となります。
しかし、C:\MyDocuments\New と入力した場合、4D は C:\\MyDocuments\New と表示します。 この場合、二つ目の \ は、誤って \N (存在するエスケープシーケンス) と認識されています。 従って、4D のエスケープシーケンスで使用される文字の前にバックスラッシュを挿入したいときは、\\ となるよう手入力しなければなりません。
macOS
- パス名がディレクトリ区切り文字 ':' で始まる場合
- パス名がディレクトリ区切り文字を含まない場合
- これらの場合にはパス名は相対パスと解釈されます。
それ以外のケースはすべて絶対パスと見なされます。
CREATE FOLDER コマンドの例題:
CREATE FOLDER("Monday") // 相対パス
CREATE FOLDER("macintosh hd:") // 絶対パス
CREATE FOLDER("Monday:Tuesday") // 絶対パス (Mondayがボリューム名)
CREATE FOLDER(":Monday:Tuesday") // 相対パス
コンセプトの章内の相対パス及び絶対パスについて も参照してください。
パス名の中身の抽出
Path to object および Object to path コマンドを使用することでパス名の中身を管理することができます。 具体的には、パス名からは以下のものを取得することができます:
- ファイル名
- 親フォルダパス
- ファイルあるいはフォルダの拡張子。