Namazu-win32-users-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: win98se+msword2.plでインデックスできない



花井と申します。
自己レスです。

──"HANAI,Akira" <hanai-a@xxxxxxxxxxxxxxxxxxxxxxx>wrote:──
  On Tue, 22 Jul 2003 10:34:49 +0900
  Subject: [namazu-win32-users-ja] Re: win98se+msword2.plでインデックスできない
──────────────────────────────────
> > windows98seにnamazu2.0.12をインストールし、filterにmsword2.plを入れてmknmzし
> > ても、
> > −−−−−−−−−ここから−−−−−−−−−
> > C:\>C:\namazu\bin\mknmz -U -O  C:\namazu\var\namazu\index d:\winword
> > 検索対象のファイルを調べています...
> > 1個のファイルがインデックス作成の対象として見つかりました
> > コマンドまたはファイル名が違います.
> > mknmz: < C:/namazu/var/namazu/index/NMZ.word.tmp: No such file or directory
> > −−−−−−−−−ここまで−−−−−−−−−
> > でインデックスができません。xdoc2txt.exeとzlib.dllはc:¥namazu¥binに入れてあ
> > ります。

前回の投稿間違っていたようです。

実際に変換動作をしている
  system("$wordconvpath -e $tmpfile2 > $tmpfile");
部分の問題ではないかと思い、win98環境とwin2000環境にてsystem関数の動作を比較
してみました。

原因切り分けのために下記scriptにて動作確認したところ、

確認script
  system("xdoc2txt > c:/temp/xdoc2txt.txt");

結果
win2000→c:¥temp¥xdoc2txt.txtが生成される(内容はxdoc2txtのヘルプ)
win98→カレントディレクトリに「c」というファイル名のファイルが生成される。
       (ファイルの内容は同上)

という結果になり、リダイレクト先のファイル名のパスセパレーターを「/」にした
場合の動作が違いました。

(ちなみに、system("xdoc2txt c:/temp/word.doc");と、変換対象ファイル名が
 パスセパレーター「/」である場合については、win98/2000共に同じ動作でした。)


そこで
  system("xdoc2txt > c:\\temp\\xdoc2txt.txt");
とパスセパレーターを「¥」にしたところwin98でもc:¥temp¥xdoc2txt.txtが生成
されました。

なので、win98にて使用する際はmsword2.plのsystem関数の行を

元:
  system("$wordconvpath -e $tmpfile2 > $tmpfile");

                      ↓

変更後:
  my $tmpfile3 = $tmpfile;
  $tmpfile3 =~ s|/|\\|g;
  system("$wordconvpath -e $tmpfile2 > $tmpfile3");

と変更してみてうまくいかないでしょうか?

#perlを理解出来ているとは言えないレベルなので、上記不適切な内容があれば
#ツッコミ入れてください。
#また、パス名やファイル名にマルチバイト文字が入っていた場合、自信無し。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 NECフィールディング.東日本CSD.テクニカルサポート部
                                 花井 亮(はない あきら)
────────────────────────────