限定しりとり

Tcl/Tkの超初歩的な質問です。

「open $filename」でファイル入力(オープン)する際に対象ファイルはディレクトリのどこへ置くのがデフォルトなのでしょうか。スクリプトと同じディレクトリに置いてもファイルがないとエラーになっています。

また、「source hoge.tcl」をwishで行った後「hoge」と入力して実行したいのですが、無効なコマンドとかのエラーになるのですが、これもどう解決すればいいのか見当つきませんでした。

解決方法のご存知の方よろしくお願いします。

A 回答 (1件)

・openにディレクトリ指定無しでファイル名を指定したり、相対パスでディレクトリを指定した場合、「現在の作業ディレクリ」が基準になります。


これは、Tck/Tkに限らず、たいていのプログラム言語でそうなります。

よくある「プログラムと同じディレクトリから設定ファイルを読み込む」というのは、なんらかの方法で「プログラムのあるディレクトリ」の情報を入手、あるいは、特定の場所にあるものと決めつけて、ディレクトリ込みのファイル名を指定するようにしています。
Tclだったら[dirname [info script]]でスクリプトのフルパスを取得→ディレクトリだけ取り出す といったことを行います。


・sourceは、「wishを起動して、指定したファイルの内容をそのままキーボードで入力」したのと同等の処理を行うものです。
source hoge.tclの後でhogeとして実行したいのなら、proc hoge~と実行したい内容をプロシージャで定義する必要がありますが、それはできていますか?
    • good
    • 0
この回答へのお礼

解決できました。
ありがとうございます。

お礼日時:2010/11/12 20:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!