問題タブ [file-comparison]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
1747 参照

diff - 同じファイル内の 2 つのセクションを視覚的に比較できるツールは?

優れたファイル比較ツールについてはすでに苦労して議論されましたが、私の問題はもっと風変わりです。同じファイル内の 2 つのセクションを簡単に視覚的に比較できる視覚的なテキスト比較ツール (WinMerge など) はありますか?

vcproj ファイル内に複数の構成があり、それらを維持する必要があります。ウィンドウを分割したり、文字ごとにスクロールしたりと、手動でこれを行うのは面倒です。その上、xml は非常に冗長で、多くの画面領域を必要とします。自動ファイル セクション比較を行うツールがないとは信じられません。これは非常に一般的な問題のように思えます。

プロパティ ページの使用を勧めないでください。これ以上複雑にしたくありません。手動でファイルに分割してからそれらを比較するのも、あまりにも時代遅れです (私はとにかくこれをやっています)。

0 投票する
1 に答える
204 参照

.net - ファイルをマージするための .NET ライブラリ

2 つのファイル (.pst など) の比較、特にマージに使用できる .net ライブラリを知っていますか? オープンソースまたは安価な場合に最適です。

0 投票する
5 に答える
3343 参照

eclipse - Eclipse (3.5) ファイルを水平方向に比較する方法は?

通常、Eclipse の「ファイル比較」は、次のような垂直パネルでファイルを比較します。

垂直パネルを使用して比較する

次のように水平方向に比較する方法はありますか。

水平パネルを使用した比較 http://www.sqlservertool.com/images/ad_hex_diff_small.gif

毎回スクロールして何が変わったのかを確認するのは面倒です!!

どうも

0 投票する
5 に答える
3601 参照

c# - C# ファイル比較ユーティリティ

C# をうまく処理できる優れたファイル比較ユーティリティをお勧めできますか。WinMerge、BeyondCompare、KDiff の両方を試しましたが、十分ではありません。たとえば、同じ名前の関数がファイルの異なる領域に配置されている場合、それらは違いとして表示されます。

0 投票する
3 に答える
1539 参照

c# - 「アセンブリ」が実際に変更されたかどうかをどのように知ることができますか?

VS2005で単純な「HelloWorld」アプリケーションを作成しました。これは単純なコンソールアプリケーションです。次の行のみが含まれています。

変更を加えずに(再構築ボタンを押すだけで)同じコンソールアプリケーションを再構築しようとすると、微妙に異なる実行可能ファイルが表示されます。(1番目と2番目に生成された実行可能ファイルの両方からSHA-1ハッシュを生成しましたが、それは異なります!)

コード変更がないのになぜ違うのですか?実際に何が変わったのですか?比較するために16進エディターを使用しましたが、2、3の異なるバイトしか表示されませんでした。

私の最終的な質問は、「アセンブリ」が本当に変更されたかどうかをどうやって知ることができるかということだと思います。(もちろん、ファイルのバージョンやファイルのサイズなどは確認しません)

編集

これまでのところ、違いはPEヘッダー(タイムスタンプと一部のデバッグデータ)にあることを確認しました。ホイールを再発明する前に、PEヘッダーを無視する「アセンブリ比較」ツールはありますか?

ありがとう、イアン

0 投票する
4 に答える
16192 参照

c# - PDFを(プログラムで)比較するための信頼できる方法は?

重複の可能性:
多数のPDFファイルを比較するためのツール?

私は、ビジネスが新年の新しいpdfフォームの束を提供し、改訂メモがまったくないという古典的なシナリオにあり、あなたは前年のものと何が違うのかを理解することになっています。

ここではたくさんのフォームについて話しているので、PDFを比較して違いの概要を説明する方法を見つけようとしています。そのため、人がすべてのフォームを手動で確認する必要はありません。

私の考えは、PDFからすべてのテキストを抽出し、それを.txtにダンプしてから、テキストファイルで違いを実行することでしたが、それは恐ろしいことのように聞こえます。

私の質問はプログラムで言っていますが、PDFを比較し、主に人々の経験からアイデアを得るための信頼できるツールがあれば満足しています。また、プログラムによるソリューションを喜んで受け入れます(C#が望ましいですが、plsはアイデアを出します)。

0 投票する
1 に答える
1829 参照

objective-c - NSFileManagerのcontentsEqualAtPath:andPath:チェックサムデータを比較します

NSFileManagerこのメソッドは、2つのファイルを比較するための動的チェックサムを作成しますかcontentsEqualAtPath:andPath:、ファイルヘッダーを開いてファイルヘッダーの詳細を比較しますか、それとも他の方法を使用して比較しますか?

ローカルファイルをリモートサーバーボリューム上のファイルと比較する場所を比較するために、200,000程度のファイルのリストがあります。ローカルファイルは過去のある時点でリモートサーバーボリュームからコピーされていたはずです。ファイルのリストを調べてそれぞれを比較し、新しいファイルをリモートサーバーボリュームからローカルマシンにコピーします(既存)。リモートサーバーファイルがローカルユーザーによって作成されたという保証はありません(おそらく、作成されていない可能性があります)。

ファイルが小さい(サイズが約4K)ため、複雑なファイル比較操作には、コピー操作とほぼ同じ時間がかかる場合があります。

この操作は(おそらくではありませんが)ユーザーセッションで複数回発生する可能性があるため、最も効率的なチェック方法を使用していることを確認する必要があります。

操作自体は別のスレッドで実行されるため、操作の完了中にユーザーを拘束する問題はありません。

私はこれをテストするために実装を開始しましたが、新しいファイルが存在する場合に更新が必要なファイルを判別するために、他の誰かが何千ものファイルをすばやく比較した経験があるかどうかを確認することに興味がありました。そして、もしあなたが持っているなら、あなたは避けるべき指針や落とし穴がありますか?

どんなアドバイスも大歓迎です。

アップデート

これについてもう少し考えてみると、変更された画像の最後に更新されたタイムスタンプを追跡するファイルを保持し、同じことを実行するローカルファイルを保持し、これら2つのドキュメントを比較する方が有益かもしれません...進行するにつれてさらに更新されます。

0 投票する
4 に答える
1422 参照

java - ファイル比較のためのJavaでのプログラムによるアプローチ

類似性について、2つの16進ファイル署名を相互に比較するための最良のアプローチは何でしょうか。

具体的には、.exeファイルの16進表現を取得し、一連のウイルス署名と比較することです。このアプローチでは、ファイル(exe)の16進表現をN文字の個々のグループ(つまり、10の16進文字)に分割し、ウイルス署名でも同じことを行う予定です。私はある種のヒューリスティックを実行することを目指しているので、このexeファイルが既知のウイルスシグネチャに対してX%の類似性を持っているかどうかを統計的にチェックします。

私がこれを行うことを考えた最も単純でおそらく非常に間違った方法は、exe [n、n-1]をウイルス[n、n-1]と比較することです。ここで、配列の各要素はサブ配列であり、したがってexe1 [0、 9]ウイルス1[0,9]に対して。各サブセットは統計的に評価されます。

ご存知のように、膨大な数の比較が行われるため、非常に時間がかかります。そこで、たとえば、異なるデータ構造を一緒に実装するなど、そのような比較を行うためのより良いアプローチを考えられるかどうかを尋ねたいと思いました。

これは、ポリモルフィックマルウェアを検出するアルゴリズムを開発しようとしている私の理学士のために行っているプロジェクトです。これはシステム全体の一部にすぎず、もう一方は静的ウイルスシグネチャを進化させる遺伝的アルゴリズムに基づいています。アドバイス、コメント、またはリソースなどの一般的な情報は大歓迎です。


定義:ポリモルフィックマルウェア(ウイルス、ワームなど)は、明らかに異なる構造(バリアント)を持ちながら、「元の」バージョンと同じ機能とペイロードを維持します。彼らは、コードを難読化し、16進署名を変更することでそれを実現しています。ポリモーフィズムに使用される手法のいくつかは次のとおりです。フォーマットの変更(空白の削除を挿入)、変数の名前変更、ステートメントの再配置、ジャンクコードの追加、ステートメントの置換(x=1はx=y / 5に変更されます。y=5)、制御ステートメントの交換。インフルエンザウイルスが変異し、ワクチン接種が効果的でないのと同じように、ポリモルフィックマルウェアは検出を回避するために変異します。


更新:アドバイスの後、あなたたちは読書が何をすべきかに関して私に与えました。私はそれをしました、しかしそれは私をもっと混乱させました。私の問題に適用できるいくつかの距離アルゴリズムを見つけました。

  • 最長共通部分列
  • レーベンシュタインアルゴリズム
  • ニードルマン-ブンシュアルゴリズム
  • Smith–Watermanアルゴリズム
  • ボイヤームーアアルゴリズム
  • エイホ-コラシックアルゴリズム

しかし、今はどちらを使用すればよいかわかりません。それらはすべて、同じことをさまざまな方法で行っているようです。それぞれをよりよく理解できるように、これからも研究を続けていきます。which might be more suitableしかし、それまでの間、私が研究の中で優先し、より深く研究できるように、あなたの意見を聞かせてください。


更新2: LCSubsequence、LCSubstring、およびLevenshteinDistanceの融合を使用することになりました。提案ありがとうございます。

完成した紙のコピーがGitHubにあります

0 投票する
2 に答える
6161 参照

unix - UNIX で sdiff を使用した左右差の出力に関する問題

次の sdiff コマンドを使用して、2 つのファイルの違いを並べて取得しています。列幅はオプションの 1 つとして指定されます

sdiff -w170 /tmp/captureFile /tmp/referenceFile (または diff -y )

-w 130 を使用すると、一部の文字が削除されます。次の行でも出力に表示されません。それらは失われます。

また、-w 170 を使用すると、左の列に余分な文字が表示されるため、右の列がシフトされ、画面幅が小さくなるため、左の列部分にその文字がほとんど表示されなくなります。

文字を削除せずに、sdiff コマンド出力の同じ列の次の行に表示するオプションはありますか?

0 投票する
5 に答える
1961 参照

java - Java でのファイル デルタ/バージョン管理の既存のソリューション

ファイル バックアップのバージョン管理または最適化を行う場合、1 つのアイデアは、変更されたデルタまたはデータのみを使用することです。

これは最初は単純なアイデアのように思えますが、実際には、変更されていないデータがどこで終わり、新しいデータがどこから始まるかを判断するのは難しい作業です。

既にこのようなことを行っている既存のフレームワークや、効率的なファイル比較アルゴリズムはありますか?