- - PR -
VisualBasicからWinDiff
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-03-03 16:34
いつもお世話になっております。
Windiffに関して質問させて下さい。 VisualBasic(Versionは6.0)からWindiffを実行させて、ファイルの内容が同じかどうか を確認したいのですが、コードの記載方がいまいち分かりません。Webでも調べてみた のですが。 少し試してみたのは、以下のコードです。 Set wshell = CreateObject("WScript.Shell") aaa = wshell.run("Windiff C:\test\a1.txt C:\test\ex_test\a2.txt -S C:\test\c.txt") wshell.run以降のコードの書き方で、aaaにファイル内容が同じなら0、違うなら1 を返すようなコードの記載方法はありますでしょうか? もし、知っている方がおりましたら、アドバイスをお願いしたいです。 | ||||||||
|
投稿日時: 2006-03-03 16:55
遅延バインディング。
多分、こんな感じだと思います。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-03-06 09:47
じゃんぬねっとさん、アドバイスありがとうございました。
テストをおこなって問題ありませんでした。 ありがとうございました。 ちなみに、今回のファイルの比較は、HPからHTMLソースを テキストに落として、これらのファイルを比較したかったのです。 | ||||||||
|
投稿日時: 2006-03-06 09:56
でしたら、ベタにバイナリ比較しても良いかもしれませんね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-04-03 19:06
以前、Windiffに関しまして質問をさせて頂きましたが、再度、同じような
質問をすることをお許しください。 簡単なテストで下記のコードをVB6.0上にて記載し実行してみましたところ、 ファイルの内容が同じでも、違っても同じリターン値が帰ってきます。 どこが不具合な箇所がありましたら、ご指摘願いたいと思います。 ===>Start Sub main() Dim wk As Boolean wk = WinDiff("c:\windiff_test\a.txt", "c:\windiff_test\b.txt") ※a.txt、b.txt共に適当な文字などをいれました。 End Sub Public Function WinDiff(strPreFile As String, strTodayFile As String) As Boolean Dim wShell As Object Dim oExec As Object Set wShell = CreateObject("WScript.Shell") Set oExec = wShell.Exec("%COMSPEC% /c FC strPreFile strTodayFile") If oExec.ExitCode = 0 Then WinDiff = True '同じ Else WinDiff = False '違う End If Set wShell = Nothing Set oExec = Nothing End Function ==>End 上記コードを実行しましたところ、明らかにファイルの内容が同じなのに、 falseがリターンされます。 | ||||||||
|
投稿日時: 2006-04-03 19:25
これじゃ動かんでしょ。 変数は "" の外に。 それから、path とか空白が入る可能性が少しでもあるのなら、 "" で囲ってやった parameter を渡しましょう。 # 必要がなくても囲むような癖をつけることを推奨します。 |
1