CGI-BBS > CGI > Perl > 2階層以下のデータ−の読み込みについて


カレッヂ
カレッヂ


質問者 りゅう  投稿日 6/19(火) 22:44:43
はじめまして。最近自分でプログラムを作ってみようとがんばっているのですがどうしても1つ
成功しないものがあります。
それはCGIから見た位置の2階層以下のデータ−が読み込めないのです。
何度となく試してみたのですがどれもだめでした。
初心者の力量もここまでだと思いました。
みなさんどうか助けてください。
図で表すとこんな風になります。

CGI
|
|
|--->Data Dir
         |
         |
         |--- Test Dir
                  |
                  |
                  |-- data.txt

どうか何か良い方法を教えてください。
回答者 カズ  [削除]  投稿日 6/20(水) 16:56:00
どういった処理をして失敗したのか書かないと答えられないような・・・
質問者 りゅう  [削除]  投稿日 6/20(水) 18:11:29
あ、すみません。
えーと以下のような処理をしていました。

$file = "$datadir$testdir";

if (!(-e $file)) { &error("File not found"); }
elseif (-z $file) { &error("File is empty"); }

if (!open(IN,$file/data.txt")) { &error("File not open"); }
@data = <IN>;
close(IN);

です。
これに良く似た処理をいろいろ試してみたのですがやはりだめでした。
えーとこれでエラーメッセージは File is empty つまり、デイレクトリーはオープンしているようなのですが(あくまでも過程に過ぎません)、データが表示されないのです。

どうかよろしくお願いします。
回答者 しあわせのツボ  [削除]  投稿日 6/20(水) 18:19:28
$file = $datadir. '/' . $testdir;
とするとどうですか?
質問者 りゅう  [削除]  投稿日 6/20(水) 18:27:24
しあわせのつぼさん、ありがとうございます。
早速試してみましたが、こんどは File not found 存在しないと言うエラーが帰ってきてしまいました。
本当に申し訳ありませんが何卒よろしくお願いします。
回答者 しあわせのツボ  [削除]  投稿日 6/20(水) 19:33:44
not foundやemptyの判定を、$file(ディレクトリ)に対して行っていませんか?
$file = $datadir. '/' . $testdir . '/data.txt';
として、ファイルを対象にしてみるとどうでしょう。
質問者 りゅう  [削除]  投稿日 6/21(木) 19:55:08
ありがとうございます。
試してみましたが、やはりだめでした。
どうしてもこの機能が必要なのでどなたか助けてください。
回答者 LAM  [削除]  投稿日 6/22(金) 09:21:16
どういうエラーがでたかわからないのですが・・・

>$file = $datadir. '/' . $testdir . '/data.txt';

と今はなっていると思いますが

>if (!open(IN,$file/data.txt")) { &error("File not open"); }

↑の部分は

if (!open(IN,$file)) { &error("File not open"); }

となっていますか??
はずしていたらごめんなさい

返信(回答)する


Web裏技