「Open」の版間の差分
細編集の要約なし |
細編集の要約なし |
||
6行目: | 6行目: | ||
; 機能 | ; 機能 | ||
: LISPの入出力関数がアクセスできるようにファイルを開く。 | : LISPの入出力関数がアクセスできるようにファイルを開く。 | ||
; 引数 | ; 引数 | ||
15行目: | 16行目: | ||
::* a : 追加モードで開く。filename 引数のファイルが存在しない場合、新しいファイルが作成、開かれる。ファイルが存在する場合、開いた後ポインタが既存のデータの終わりに移動するので、ファイルに書き出される新しいデータは既存のデータの後ろに追加される。 | ::* a : 追加モードで開く。filename 引数のファイルが存在しない場合、新しいファイルが作成、開かれる。ファイルが存在する場合、開いた後ポインタが既存のデータの終わりに移動するので、ファイルに書き出される新しいデータは既存のデータの後ろに追加される。 | ||
::* 注:mode 引数は、小文字でなければならない。 (今後のリリースで変更されるかも) | ::* 注:mode 引数は、小文字でなければならない。 (今後のリリースで変更されるかも) | ||
; 戻り値 | ; 戻り値 | ||
: ファイルを正常に開くことができた場合、他の入出力関数で使用可能なファイル ディスクリプタを返す。 | : ファイルを正常に開くことができた場合、他の入出力関数で使用可能なファイル ディスクリプタを返す。 | ||
: モード "r" が指定され、filename 引数のファイルが存在しない場合、 nil を返す。 | : モード "r" が指定され、filename 引数のファイルが存在しない場合、 nil を返す。 | ||
: 注: DOS システムの場合、プログラムやテキストエディタによってはテキスト ファイルの終端を示す EOF 記号([Ctrl]+[Z]、10 進 ASCII コード 26)が書き出される場合がある。テキスト ファイルを読み込むときに[Ctrl]+[Z] があると、その後にさらにデータが存在する場合でも DOS はファイルの終端とみなす。他のプログラムが作成したファイルに open 関数の "a" モードを使用してデータを追加する場合、テキスト ファイルの終わりに [Ctrl]+[Z] が挿入されていないかどうかを確認する。 | : 注: DOS システムの場合、プログラムやテキストエディタによってはテキスト ファイルの終端を示す EOF 記号([Ctrl]+[Z]、10 進 ASCII コード 26)が書き出される場合がある。テキスト ファイルを読み込むときに[Ctrl]+[Z] があると、その後にさらにデータが存在する場合でも DOS はファイルの終端とみなす。他のプログラムが作成したファイルに open 関数の "a" モードを使用してデータを追加する場合、テキスト ファイルの終わりに [Ctrl]+[Z] が挿入されていないかどうかを確認する。 |
2015年8月3日 (月) 13:25時点における版
- 構文
- (open filename mode)
- 機能
- LISPの入出力関数がアクセスできるようにファイルを開く。
- 引数
-
- filename : 開くファイルの名前と拡張子を指定する文字列。ファイルの完全パスを指定しなかった場合、スタートアップディレクトリを指定したものとみなされる。
- mode : ファイルを読み込みモード、書き出しモード、追加モードのいずれで開くかを指定する。次の文字のいずれか 1 つを含む文字列を指定する。
- r : 読み込みモードで開く。
- w : 書き出しモードで開く。filename 引数のファイルが存在しない場合、新しいファイルが作成、開かれる。ファイルが存在する場合、既存データが上書きされる。開いたファイルに渡されたデータは、close 関数でそのファイルを閉じるまで、実際には書き出されない。
- a : 追加モードで開く。filename 引数のファイルが存在しない場合、新しいファイルが作成、開かれる。ファイルが存在する場合、開いた後ポインタが既存のデータの終わりに移動するので、ファイルに書き出される新しいデータは既存のデータの後ろに追加される。
- 注:mode 引数は、小文字でなければならない。 (今後のリリースで変更されるかも)
- 戻り値
- ファイルを正常に開くことができた場合、他の入出力関数で使用可能なファイル ディスクリプタを返す。
- モード "r" が指定され、filename 引数のファイルが存在しない場合、 nil を返す。
- 注: DOS システムの場合、プログラムやテキストエディタによってはテキスト ファイルの終端を示す EOF 記号([Ctrl]+[Z]、10 進 ASCII コード 26)が書き出される場合がある。テキスト ファイルを読み込むときに[Ctrl]+[Z] があると、その後にさらにデータが存在する場合でも DOS はファイルの終端とみなす。他のプログラムが作成したファイルに open 関数の "a" モードを使用してデータを追加する場合、テキスト ファイルの終わりに [Ctrl]+[Z] が挿入されていないかどうかを確認する。
- サンプル
- 次のように、既存のファイルを開く。
(setq a (open "c:/program files/<CADインストールディレクトリ>/help/filelist.txt" "r")) #<file "c:/program files/<CADインストールディレクトリ>/help/filelist.txt">
- 次の例は、存在しないファイルに対して open 関数を実行している。
(setq f (open "c:¥¥my documents¥¥new.tst" "w")) #<file "c:¥¥my documents¥¥new.tst"> (setq f (open "nosuch.fil" "r")) nil (setq f (open "logfile" "a")) #<file "logfile">
関連事項
- close 関数
- findfile 関数
- write-line 関数