- - PR -
JAVAによるCSVファイルの比較について
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-06-30 14:53
2つのCSVファイル(Input.csv Output.csv)を比較してその差異をDiff.csv
に出力します。 Input.csvとOutput.csvの形式ですが、以下の通りです。 ※Diff.csvの形式は、まだ、決まっておりません。 ●Input.csv ← ファイル名称 Test1,User1,User2,User3,User4 Test2,User1,User2,User3,User5 ●Input.csv ← ファイル名称 Test1,User1,User2,User3,User5 Test2,User1,User2,User3,User5 ●Diff.csv ← ファイル名称 1行目に差異があります。 Input.csv:Test1,User1,User2,User3,User4 Input.csv:Test1,User1,User2,User3,User5 ※比較は、各csvファイルの行単位で比較し、差異があればDiff.csvに出力 する方向で考えております。 何か、サンプル等あれば、ご教授頂けますと幸いで御座います。 どうかよろしくお願い致します。 | ||||
|
投稿日時: 2004-06-30 15:01
多分、下記と同じ方ですよね・・・。http://www.vc-net.ne.jp/~ytp/bbs/java/bbs20197.html 比較対照のCSVを行単位で読み込んで、 行単位で比較し、不一致があったら、 ファイルに出力してやるだけじゃないんでしょうか? どこがわからないんですか? JavaのIOですか? 文字列の比較ですか? | ||||
|
投稿日時: 2004-06-30 15:29
takuさんの仰られる通り、何が分らないのかが分りません。
元の投稿だけ見ると、単なる報告(これからこういうものを作ります)ですし、 更に穿った見方をすれば自分ではコーディングするつもりが無く、 ただ単に他人に丸投げしているようにも見えてしまいます。 JavaのIOに関して言えばJakartaのCommons-ioがありますし、 # URL: http://jakarta.apache.org/commons/io/ # 基礎が分っていないのならこういうものを単に使うのでは不味いと思いますが 行で区切るならsplit、行の一致を見るならばeqaulsが使えると思います。 まみこさんは何処がどの様な理由で分らないのですか? # ただ単なる報告ならば「そうですか〜」で終わりますが。。。 | ||||
|
投稿日時: 2004-06-30 15:57
単に先頭から順番に比較して差分出すだけだったら難しくも何とも無い筈なので置いておくとして。
難しいとしたら、例えば inputが AAA BBB CCC outputが AAA CCC で、差分を 削除:BBB みたいな感じで出す場合でしょうか。 (単純比較なら 変更:BBB CCC 追加:CCC になりますよね?) こちらだとすると、googleで 「diff アルゴリズム」で検索をかけるといくつか出てきます。 私もちょっと読んでみたのですが、理解できませんでした。 | ||||
|
投稿日時: 2004-06-30 16:17
diff 相当の機能までを考えているのかはわかりませんが、もしそうなら Hirschberg のアルゴリズムや Hunt-Szymanski のアルゴリズムが使えます。
これらの人名ないし longest common sequence (LCS) で検索してみると幸せになれるかもしれません | ||||
|
投稿日時: 2004-06-30 16:56
Apacheライセンスのソフトウェアを使えるなら、
JRCSという、JavaでRCS/CVSおよびDiffを扱うライブラリがありますよ。 http://www.suigeneris.org/space/JRCS # 追記 Downloadしようとしてみたら、404エラーになってしまった。あれ? Jakarta Commonsのページに行ってみたら、JRCSのページがなくなってる。あれ? [ メッセージ編集済み 編集者: Wata 編集日時 2004-06-30 17:11 ] | ||||
|
投稿日時: 2004-06-30 17:52
JRCS、どうなったんでしょう?Sandboxの段階でボツになったとかでしょうか。
とりあえずJRCSに探りを入れていたら「manholeのおきらくごくらく日記」という所でこんなのを見つけました↓
| ||||
1
