■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#47099-0CSVファイルの比較方法みや2001-09-21(金) 20:40
     #47101-0RE#47099:CSVファイルの比較方法魔界医師2001-09-21(金) 21:54
     #47103-0RE#47101:CSVファイルの比較方法Say2001-09-22(土) 00:28
     #47112-0RE#47101:CSVファイルの比較方法>>お礼みや2001-09-22(土) 15:16
#47099-0
CSVファイルの比較方法
いつもお世話になっております(^-^)

今日は、二つのCSVファイルを比較し、差分を取り出す方法に悩んでいます。
この二つのファイルはまったくの別物というわけではなく、
一つ目のファイルがあって、それを更新したものが二つ目です。

・・・
8月分と9月分ファイルがあって、9月分ファイルは8月分のファイルを更新して作ったものである
この9月更新分だけを取り出したいわけです。
・・・説明が下手でスミマセン。意味わかりますでしょうか?

大変件数が多いため 普通に比較をしていたら 時間がかかりそうなんです。
なにか、いい手をご存知の方はいらっしゃいませんでしょうか?

追伸:過去ログの検索が文字化けしてしまい使えませんでした・・・
#47101-0
RE#47099:CSVファイルの比較方法
カルテ1:症状
・2つのファイルが存在するが、その違いを効果的に抜き出す方法が判らない。

カルテ2:診断
・1つ目のファイルと2つ目の違いが詳しく書かれていないが、8月分ファイルに「追加」していって
9月分になっているのだろうか? それとも、8月分のデータ内に、修正したものがあるのだろうか?
・1レコードのフォーマットが判らない。固定長なのだろうか?、それとも可変長か? また、CSV は
カンマ区切りであろうか? そのファイルサイズはどれくらいであろうか?

カルテ3:処方
・9月分は追加書き込みであり、8月分の修正はないものと仮定し、サンプルを投与してみる。
・出力するファイルサイズが小さいならば、バイナリ形式で1回の読み込みと1回の書き込みで処理
できる。そちらの方法も考慮されたし。
・CSV 形式であれば、ODBC 経由でデータベースとして扱う事もできるので、サンプルで治癒できない
場合にはそちらの方法も検討されたい。
・または、DOS プロンプトに FC というファイル比較コマンドが存在するので、Shell 関数を用いて
これを利用してみるのも良いだろう。

Const cFile1 As String = "c:\200108.csv"
Const cFile2 As String = "c:\200109.csv"
Const cFile3 As String = "c:\09only.csv"

Private Sub Command1_Click()
    Dim lw As Long
    Dim cw As String

    lw = FileLen(cFile1)

    Open cFile2 For Input As #2
    Open cFile3 For Output As #3
    Seek #2, lw + 1

    While EOF(2) = 0
        Line Input #2, cw
        Print #3, cw
    Wend

    Close #3
    Close #2

    MsgBox "終了"
End Sub
#47103-0
RE#47101:CSVファイルの比較方法
「VBでやりたい」のでなく、
単にファイル比較したいだけなら、
「テキストコンペア」や「バイナリコンペア」で探せば、
比較して相違点を報告してくれるツールとかあります。
#47112-0
RE#47101:CSVファイルの比較方法>>お礼
みなさん、よいアドバイスをありがとうございます。
ツールの利用も含めて検討したいと思います。
このページと関連する記事:
#45642-0複数のファイルの結合・分割2001-08-03(金) 17:51
#20997-0不一致行のチェックプログラム2002-05-31(金) 11:30
#17276-0ファイルの結合2001-08-15(水) 13:04
#26949-0ファイル更新日付について2002-02-18(月) 21:32
#18866-0特定形式ファイル数の取得2001-11-22(木) 16:06
#17106-0ファイルの更新2001-08-01(水) 13:02
#4123-2バイト数でそろえる2002-01-22(火) 00:47
#23949-0テキストファイルを印刷2001-10-23(火) 16:07
#5257-0PDFモジュールのパス2002-02-20(水) 09:33
#20568-0INIファイルからの文字列取得について2002-04-12(金) 21:47
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)