Namazu-win32-users-ja(旧)


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

インデックス作成時のエラーその後



 池浦@福岡県水産海洋技術センター豊前海研究所です。

 竹迫さんの修正が加わったkakasi-2.3.3をcygwinでコンパイルして
メール:kakasi -w cr_eat_mode bug? に添付のfailed.txtや当方の問題の
テキストファイルで

 kakasi -w < failed.txt
 kakasi -w < 問題のテキストファイル

    {ちなみに問題のテキストファイルは
       1行目:年<TAB>月<TAB>日<TAB>場所<TAB>種類<TAB>サイズ<TAB>銘柄
         + 511行以上の<TAB>のみの行 です。
     (<TAB>:タブコード)}

を行うとkakasi単体は正常に終了するようになりました。しかしこのテキスト
ファイルを

 C:\>perl c:\namazu\bin\mknmz -U -O d:\index d:\test 

     ※d:\testに問題のテキストファイルを入れています。

とすると以前と同様perlがハングする状態のままでした。ちなみに同じことを
failed.txtでやるとmknmzは正常に終了します。そこでPerlをデバックモードに
してmknmzを追っかけていくと、wakati.pl中のwakatize_japanese_subで71行目の

  $str = Text::Kakasi::do_kakasi($$content);

でハングしているような感じでした。まだどこかでオーバーフローしている
モジュールがあるのでしょうか?
 ちなみにコンパイルはさっぱりわかっていないので、kakasi-2.3.3をコンパイルして
できあがったバイナリだけをkakasi-2.3.2のフォルダに上書きコピーしています
(これが問題かも)。

 しかしこの状態でoleexcel.pl Ver3.05を使って問題のテキストファイルの
元になったExcelのファイルをmknmzすると正常に終了することがわかりました。
とりあえず問題は解決のようです(^^)。竹迫さんありがとうございます。
 oleexcel.pl Ver3.05は一時ファイルの上書き確認の問題もなく快調です。感謝。

 あと、oletaro.plも使ってみたのですが、更新日付がうまくとれないようです。
Word2000で一太郎のファイルを開いてからVBAでチェックしてみましたが、Wordで
一太郎のファイルを開いた場合BuiltinDocumentPropertiesプロパティではファイ
ルの更新日時は取得できないようです。
 スマートではないですが、olemsword.pl(一太郎専用に書き直した方がよいか?)に

  use Win32::OLE::Variant;

を追加して、更新日付の取得部分を

  my $Fso=Win32::OLE->new('Scripting.FileSystemObject');
  my $File=$Fso->GetFile($cfile->{FullName});
    $fields->{'date'} = $File->{DateCreated}; # createdate
  undef	$File;
  undef	$Fso;

と書き換えるととりあえず取れるようになります。もっとスマートな方法があったら
いいのですが。