version 11 (Modified)
Structure file {(*)} 文字列
| 引数 | 型 | 説明 | |
| * | * | ホストデータベースのストラクチャファイルを返す | |
| 戻り値 | 文字列 | データベースストラクチャファイルのパス名 |
説明
Structure file コマンドは、現在使用しているデータベースのストラクチャファイルのパス名を返します。
Windows
例えば、ボリュームG上の\DOCS\MyCDsの中に配置されたMyCDsデータベースを使って作業している場合、この関数は、G:\DOCS\MyCDs.4dbase\MyCDs.4DBを返します。
Macintosh
例えば、ハードディスクMacintosh HD上のDocuments:MyCDs:フォルダの中に配置されたMyCDsデータベースを使って作業している場合、この関数は、Macintosh HD:Documents:MyCDs.4dbase:MyCDs.4DBを返します。
Note: データベースがコンパイルされて4D Volume Desktopに統合されている場合、WindowsおよびMac OSでこのコマンドはアプリケーションファイル(実行可能なアプリケーション)のパス名を返します。Mac OS上では、このファイルはソフトウェアパッケージの中の[Contents:Mac OS]フォルダに置かれます。これは以前のメカニズムに起因するものであり、互換性のため保持されています。ソフトウェアパッケージ自体のフルアクセスパスを取得したい場合には、Application fileコマンドの利用をお勧めします。方法としては、Application type コマンドを使用してアプリケーションタイプを調べた後、その結果に応じてStructure fileまたはApplication fileを実行します。
警告: 4D Clientを実行している最中にこの関数を呼び出すと、パス名ではなくストラクチャファイルの名前だけが返されます。
オプションの * 引数はコンポーネントを使用したアーキテクチャで有用です。コマンドが呼び出されたコンテキストで、ホストデータベースまたはコンポーネントどちらのストラクチャファイルのパス名を取得するか指定するために、使用できます:
・コマンドがコンポーネントから呼び出された場合:
- * 引数が渡されていると、コマンドはホストデータベースのストラクチャファイルのパス名を返します。
- * 引数が渡されないと、コマンドはコンポーネントのストラクチャファイルのパス名を返します。
コンポーネントのストラクチャファイルは、データベースの“Components”フォルダに置かれた.4dbまたは.4dcファイルに対応します。しかしコンポーネントはエイリアス/ショートカット、または.4dbaseフォルダ/パッケージでインストールすることもできます:
- エイリアス/ショートカットでインストールされたコンポーネントの場合、コマンドはオリジナルの.4dbまたは.4dcファイルのパスを返します (エイリアスやショートカットは解決されます)。
- .4dbaseフォルダ/パッケージでインストールされたコンポーネントの場合、コマンドはこのフォルダ/パッケージ内の.4dbまたは.4dcファイルのパスを返します。
・ホストデータベースのメソッドからコマンドが呼ばれた場合、常にホストデータベースのストラクチャのパス名を返します。* 引数は無視されます。
例題
1. 以下の例は、現在使用中のストラクチャファイルの名前と配置場所を表示します:
If (Application type#4D Client)
$vsStructureFilename:=Long name to file name (Structure file)
$vsStructurePathname:=Long name to path name (Structure file)
ALERT("You are currently using the database "+Char(34)+$vsStructureFilename+Char(34)+
" located at "+Char(34)+$vsStructurePathname+Char(34)+".")
Else
ALERT("You are connected to the database "+Char(34)+Structure file+Char(34))
End if
Note: プロジェクトメソッドLong name to file nameとLong name to path nameはシステムドキュメントの節で紹介しています。
2. 以下の例題は、メソッドがコンポーネントから呼び出されているか知るために使用できます:
C_BOOLEAN($0) $0:=(Structure file#Structure file(*)) ` $0=メソッドがコンポーネントから呼び出されいる場合、True
参照
Application file, COMPONENT LIST, Data file, DATA SEGMENT LIST.