version 11 (Modified)
Open document (document{; fileType{; mode}}) DocRef
| 引数 | 型 | 説明 | |
| document | 文字列 | ドキュメント名、または | |
| ドキュメントへの完全なパス名、または | |||
| 空の文字列の場合、標準のファイルダイアログボックス表示 | |||
| fileType | 文字列 | 表示されるドキュメントタイプのリスト、または | |
| ドキュメントを表示しない"*" | |||
| mode | 整数 | ドキュメントを開くモード | |
| 戻り値 | DocRef | ドキュメント参照番号 |
説明
Open documentコマンドは、documentに渡した名前またはパス名を持つドキュメントを開きます。
documentに空の文字列を渡した場合、ファイルを開くダイアログボックスが表示され、開くドキュメントを選択できます。このダイアログをキャンセルするとドキュメントは開かれず、Open documentはドキュメント参照番号に空値を返し、システム変数OKに0を代入します。
・ドキュメントが正しく開かれると、Open documentはドキュメント参照番号を返し、システム変数OKに1を代入します。
・ドキュメントが既に開かれていて、引数modeが省略されると、Open documentは読み込みモードでドキュメントを開き、OK変数に1を代入します。
・ドキュメントが既に開かれていて、書き込みモードで開こうとすると、エラーが発生します。
・ドキュメントが存在しない場合、エラーが発生します。
引数fileTypeには、開くダイアログボックスで選択するファイルのタイプを渡します。; (セミコロン) で区切られた幾つかのタイプのリストを渡すことができます。それぞれのタイプセットに対して、ダイアログボックスでタイプを選択する際に使用するメニューに、アイテムが追加されます。
Mac OSでは標準的なMac OSタイプ(TEXT、APPLなど) またはUTI (Uniformタイプ識別子) タイプのどちらかを渡します。ファイルタイプの標準化のニーズを満たすために 、UTIはAppleによって指定されます。例えば、"public.text" は、テキストタイプのファイルのUTIタイプとなります。UTIに関する詳細については、次のアドレスを参照してください。http://developer.apple.com/documentation/Carbon/Conceptual/understanding_utis/index.html.
Windowsでは、標準的なMac OSのファイルタイプ (4Dは内部的に対応を行います) またはファイル拡張子(.txt、.exe など) を渡します。Windowsでは、ダイアログボックスに"*.*"を入力することによって、全てのファイルタイプを表示させることができます。しかしこの場合、4Dは選択されたファイルタイプのチェックを追加して実行します。認識されていないファイルタイプが選択された場合、コマンドはエラーを返します。
表示されているファイルを1つ以上のタイプに限定したくない場合は、文字列"*" (アスタリスク) または".*" をfileTypeに渡します。
任意の引数modeは、ドキュメントがどのように開かれるかを指定することができるようにするものです。4つのオープンモードが指定可能です。4D には下記の定数が "System Documents" テーマで定義されています。
| 定数 | タイプ | 値 |
| Read and Write (デフォルト値) | 整数 | 0 |
| Write Mode | 整数 | 1 |
| Read Mode | 整数 | 2 |
| Get Pathname | 整数 | 3 |
ドキュメントが開かれると、Open documentはドキュメントの最初にファイルの書き込み/読み込み位置を設定します。一方、Append documentは、ドキュメントの最後にファイルの書き込み/読み込み位置を設定します。
ドキュメントを開くと、RECEIVE PACKETとSEND PACKETコマンドを使用してドキュメントを読んだり、書いたりすることができます。これらのコマンドをGet document positionおよびSET DOCUMENT POSITIONコマンドと組み合わせることにより、ドキュメントのあらゆる箇所へ直接アクセスすることが可能となります。
最後に、開かれたドキュメントに対して、CLOSE DOCUMENT を呼び出すことを忘れないようにしてください。
例題
1. 以下の例を使用して、Note.txtという既存のドキュメントを開き、"Good-bye"という文字列を書き込み、そしてドキュメントを閉じます。ドキュメントが既に"Hello" という文字列を含む場合、この文字列は上書きされます。
C_TIME(vhDoc)
vhDoc:=Open document ("Note.txt";Read and Write) `ノートというドキュメントを開く
If (OK=1)
SEND PACKET (vhDoc"Good-bye") `ドキュメントに1語書き込む
CLOSE DOCUMENT (vhDoc) `ドキュメントを閉じる
End if
2. ドキュメントがすでに書き込みモード開かれていても、読みをおこなうことはできます。
vDoc:=Open document ("PassFile";"TEXT") `ファイルが開いいる
`ファイルを閉じる前に、読み込み専用モードで検査できる
vRef:=Open document ("PassFile";"TEXT";Read Mode)
システム変数またはセット
ドキュメントが正しく開かれると、OKシステム変数に1が代入されます。その他の場合は0が代入されます。呼び出し後、Documentシステム変数には完全なドキュメント名が入っています。
Open documentを3のモードで呼ぶと、関数は?00:00:00? (ドキュメント参照無し) を返します。ドキュメントは開きませんが、DocumentとOKシステム変数は更新されます。
・OKは1と等しい。
・documentには、完全なパス名とそのドキュメントの名前が入っています。
Note: 空の文字列をdocumentに渡した場合はファイルを開くダイアログボックスが表示されます。ドキュメントを選択しOKボタンをクリックすると、documentは選択したドキュメントのパスに設定され、OKに1が代入されます。Cancelボタンをクリックすると、OKに0が代入されます。
参照
Append document, Create document.