プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になっています。
今回perlで2つのCSVファイルを比較して、マッチしたものをエクセルで表示させるスクリプトを作ろうとしています。
エクセルに表示するときに、OLE32を使うことは前回教えていただいたのですが、2つのファイルを比較する方法が分かりません;
ネットなどでは調べたのですが、参考になるサイトなど見つけられなかったので、詳しい方お力をお貸しください。
参考になりそうなサイトも教えていただけると、とても助かります。
よろしくお願いします。

A 回答 (3件)

>一致した項目だけをエクセルで書き出したいのです



 CSVファイルでは、行のことを「レコード」、その行に含まれるデータ1つ1つを「項目」と呼びますが、その認識でよろしいでしょうか?
 ファイルAとBのレコードの数が一致しており、それぞれ1行ずつ読み込んで項目を順番に比較すればいいのであれば、

open(A, "<fileA");
open(B, "<fileB");
while ( <A> ) {
 @a = split(/,/,$_);
 @b = split(/,/,<B>);
 for($i = 0; $i < @a; $i++ ) {
  if ( $a[$i] eq $b[$i] ) {
   print "$a[$i]\t";
  }
 }
 print "\n";
}

 これでイケるはずです。
 でもこれだとデータの順番とかデタラメになっちゃいますけど、いいんですか?(^_^;
 最終的に何がやりたいのか分からないので、これ以上アドバイスしようがないのですが。
    • good
    • 0
この回答へのお礼

お返事遅くなりました。
先ほど何とか解決しました。
何度も解答していただきありがとうございました。

お礼日時:2004/09/15 17:48

>CSVファイルを比較して


 とありますが、サンプルとしてどういった
構造なのかを書いていただけるとありがたいです。

 他の方がやられているように『eq』でやる文字列比較
のやり方にあう場合とhashによるデータ比較と大まかに
2種類ぱっと思いつきます。
 只、やはりデータの構造が分からないとどちらをお勧め
すべきかは判断がつきません。
    • good
    • 0
この回答へのお礼

[eq]で何とか出来ました!
ご解答ありがとうございました。

お礼日時:2004/09/15 17:49

 どういう方法で比較するんでしょうか?


 この質問文からだと、「読み込んで比較演算子 eq で比較する」という回答の仕方しかできませんが……。

この回答への補足

>>どういう方法で比較するんでしょうか?
中身が似ているけれど、違うファイルAとBを比較して、一致した項目だけをエクセルで書き出したいのです。。。
分かりにくくてすみません。これで分かるでしょうか…?

補足日時:2004/09/09 10:42
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!