[Namazu-users-ja 148] Re: mknmz中にエラーが出る。

Tadamasa Teranishi yw3t-trns @ asahi-net.or.jp
2004年 11月 30日 (火) 00:24:06 JST


寺西です。

# 問題が解決するわけではありませんが。

Taiji.Can @ grd.advantest.co.jp wrote:
> 
> > デバッグメッセージを追加した excel.pl を用意しましたので、お手数です
> > が、再度こちらで試していただけませんか?
...
> @@ モジュール: excel.pl
> // tmpnam: /var/www/index/all/NMZ.excel.tmp
> // tmpnam: /var/www/index/all/NMZ.excel2.tmp
> @@ Processing ms-excel file ... (using  '/usr/bin/xlhtml')
> @@ /usr/bin/xlhtml -m /var/www/index/all/NMZ.excel.tmp > /var/www/index/all/NMZ.excel2.tmp
> @@ system 0
> @@ not found /var/www/index/all/NMZ.excel2.tmp

以下の部分で上記のメッセージを出しています。

    # -m: No encoding for multibyte. It's necessary to
    # handle a Japanese Excel 5.0 or 95 document correctly.
    util::vprint("$xlconvpath -m $tmpfile > $tmpfile2\n");
    util::systemcmd("$xlconvpath -m $tmpfile > $tmpfile2");
    util::vprint("system $?\n");
    util::systemcmd("$xlconvpath -m $tmpfile > $tmpfile2");
    if (-f $tmpfile2) {
        util::vprint("found $tmpfile2\n");
    } else {
        util::vprint("not found $tmpfile2\n");
    }

ちょっと間違えて、util::systemcmd を 2度呼んでいますが、冗長なだけ
で結果には影響しないはずです。

このデバッグメッセージからすると、

$ /usr/bin/xlhtml -m /var/www/index/all/NMZ.excel.tmp >
/var/www/index/all/NMZ.excel2.tmp

を system コマンドを用いて実行した後に、
/var/www/index/all/NMZ.excel2.tmp
ファイルが見つかっていません。それで、/var/www/index/all/NMZ.excel2.tmp
ファイルをオープンする際にエラーが生じています。
ただ、system コマンドの戻り値は 0 ですので xlhtml 正常動作しているように
思えます。

リダイレクションで作成したファイルが存在しないとはどういうことで
しょうね。
(パーミッションというのは考えられますが、その前のファイルでは
作成できているわけですから、その可能性はないでしょう。system
の戻り値も 0 ですし。)

xlhtml の出力が何もない場合でも、リダイレクションなら 0 バイトの
ファイルが作成されるはずです。

上記のようなことが起こる理由がちょっと思いつきません。(何かがこの
タイミングでファイルを削除しているか、xlhtml コマンドの実行が完了
していないかぐらいでしょうか。その可能性もないと思うのですが。)
--
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns @ asahi-net.or.jp
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E




Namazu-users-ja メーリングリストの案内