吉泉です。

 染谷さん、exlap_cについてのコメントありがとうございます。
 エラーの内容をみると、htmlパーサのhpricotというライブラリをうまく
requireできないということのようですが、なぜそのエラーが発生するのか、
よく分かりません。
 exlap_c.rbの中で hpricot をrequireする際は、begin …… end で囲んで
いるので、hpricotがインストールされていないのであれば、単にスキップす
るだけだと思うのですが……

 実は、その後、exlap_c.rbに少し変更を加えまして、今は ver 0.8d という
のをアップロードしてあります。urlは前と同じ
http://cup.sakura.ne.jp/exlap_c080.zip
です。
 この版では、hpricot または nokogiri をかってにrequireするのをやめて、
利用者の方にお任せする形にしました。

require "rubygems"
require "hpricot"
require "exlap_c"

などのように、exlap_c.rb よりも前に、お好みの方のhtmlパーサをrequireし
ます。
 ちなみに、染谷さんが試して下さったcsv_test.rbは、webにアクセスするわ
けではないので htmlパーサを必要としません。新しい版のサンプルではパー
サと無関係に動くようになっています。

 それから、染谷さんがご指摘して下さった

| ライブラリ「exlap_c.rb」の357行あたりを見ましたが、同じ処理を
| しているようですが、よろしいのでしょうか?

という件について、(今の版では削除してしまってますが)私がスクリプトで実
現しようとした「つもり」を文章化してみると、次のようになります。

(1) hpricotもnokogiriも両方ともrequireされていないのであれば、hpricot
をrequireする。
    (上の処理を行った後で、改めて)
(2) それでもなお、hpricotもnokogiriも両方ともrequireされていないのであ
れば、nokogiriをrequireする。

この2つのことを行うというのが、引用していただいた「exlap_c.rb」の
357行あたりの趣旨です。
 私が気づいてない「まずい点」があるのかもしれません。

 エラーに対する疑問にお応えできなくて申し訳ありません。
 よかったら、新しい版で試してみていただければと思います。

 なお、exlap_cの v0.8 → v0.8d の変更点は次のとおりです。
・ruby v1.9.x用の excel_c.rbを追加しました。
・hpricot または nokogiri を自動でrequireするのをやめ、requireを利用者
に任せるようにしました。exlap_cよりも前にそれらをrequireして下さい。
・「〜」と「−」の文字化けを防ぐため、xmlss内では、それぞれ "~"
"-" と記述するようにしました。
・各々のセルに簡単な変換処理を施すためのグローバル変数 $my_convert を
設けました。詳しくは exlap_c.txt を参照して下さい。

 以上、よろしくお願いします。


In reply to 染谷 康一 <kouichi_someya / mbe.nifty.com>'s message:
| 吉泉さん
|
| 失礼します。
| 染谷と申します。
|
| ライブラリファイルをコピーし、サンプルプログラムを
| 実行してみましたが、以下のようにエラーになりました。
| =================================================================
| E:\Downloads\Ruby\exlap_c080\sample>E:\Downloads\Ruby\exlap_c080\sample\csv_te
| st.rb
| C:\ruby-1.8\lib\ruby\site_ruby\1.8/rubygems/custom_require.rb:31:in `gem_origi
| nal_require': no such file to load -- hpricot (LoadError)
|         from C:\ruby-1.8\lib\ruby\site_ruby\1.8/rubygems/custom_require.rb:31:
| in `require'
|         from C:\lib/exlap_c.rb:357
|         from E:/Downloads/Ruby/exlap_c080/sample/csv_test.rb:3:in `require'
|         from E:/Downloads/Ruby/exlap_c080/sample/csv_test.rb:3
| =================================================================
|
| ライブラリ「exlap_c.rb」の357行あたりを見ましたが、同じ処理を
| しているようですが、よろしいのでしょうか?
|
| =================================================================
| if !defined?(Hpricot) and !defined?(Nokogiri)
|   begin
|     require 'rubygems'
|   end
|   begin
|     require 'hpricot'
|     require 'hpricot/xchar'
|   end
| end
| if !defined?(Hpricot) and !defined?(Nokogiri)
|   begin
|     require 'rubygems'
|   end
|   begin
|     require 'nokogiri'
|   end
| end
| if defined?(Hpricot)
|   Hpricot::XChar::PREDEFINED_U.update({"&nbsp;"=>32})
| end
| =================================================================
|
| 誠に済みませんが、ご確認をお願いします。
|
| 以上