ファイルの内容を比較をしたいのですが、そのようなAPIがあれば教えてください。
機能的にはDiffみたいな感じです。
よろしくお願いします。
問題はね、ファイルの内容で、何が比較をしたいですか?
大きさですか?
型ですか?
diffのような内容比較です。
ファイル内容が同じか異なるか、変更されたかどうかを調べたいのです。
2つのファイルが同じか違うかだけわかればいいのなら、
Shell関数でDOSコマンドのFCを発行して、
出力をファイルにリダイレクトして、
出力ファイルをチェックするとか。
ちなみに、「Diffのように比較」というのは結構面倒です。
単純比較だと1文字(あるいは1行)挿入か削除しただけでも
それ以降全部不一致になりますから、
バッファリングして辞書検索するなりの工夫が必要です。
まぁ、そのうち突き当たるかもしれませんが、ハッシュ関数についても調べておいたほうがいいと思います。
編集 削除そうですか…。APIはないのですね。
でもとりあえずファイルが同じか異なるかだけ調べたいので、解決です!
Sayさん、ご親切な回答ありがとうございました。
いちゆさんもありがとうございます。
fcでやってみたんですが・・うまくできませんでした(>_<)
結果をファイルに書き込む場合は、
Shell("fc.exe text1.txt text2.txt >output.txt")
のようにやればいいんですか?これでは出力されませんでした…。
また、プロセスハンドルから標準出力を取得しようとしたのですが、
これもなぜかうまくいきませんでした…(>_<)
普通に Shell("cmd") だけなら取得できたんですけどね。
どうしてでしょう。
教えてください。お願いしますm(__)m
>Shell("fc.exe text1.txt text2.txt >output.txt")
>のようにやればいいんですか?これでは出力されませんでした…。
リダイレクトはコマンドシェル(command.com,cmd.exeなど)の機能です。
コマンドシェル経由で利用してください。
>また、プロセスハンドルから標準出力を取得しようとしたのですが、
>これもなぜかうまくいきませんでした…(>_<)
パイプ経由で受け渡ししてください。
VBではあまりやりませんので参考サイトはほとんどありませんが・・・、
http://www.snark.co.jp/soft/faq/VB_A2.HTM
の「<Q6>に対する回答」あたり。
VCやDelphiでよければ、
「CreatePipe 標準出力 ReadFile」ぐらいのキーワードで探せば
適度にひっかかります。