2016-07-22 4 views
1

Ich bin ein Anhänger dieser Website für die letzten Jahre, und ich habe viele Male profitiert. Dies ist meine erste Buchung für ein Beispielszenario, auf dem ich feststecke.Fast ähnliche SQL-Code-Blöcke mit wenigen Unterschied der Werte in .TXT-Datei zu identifizieren

Szenario :: Ich habe zwei. SQL-Dateien, die fast ähnliches Stück Code mit Unterschieden der Parameterwerte (z. B. IDs, Namen) haben. Jetzt muss ich jeden ähnlichen Block jeder Datei erfassen. Damit können Sie davon ausgehen, dass es 15-20 Blöcke wie Deletion/Insertion mit derselben Syntax aber unterschiedlichen Werten gibt. Und ich möchte die Unterschiede mit Java identifizieren und hervorheben.

Könnte mir jemand helfen zu bestimmen, wie ich ähnliche Blöcke angeben und unterscheiden kann.

Vielen Dank für das Vorausschauen.

Antwort

0

Was Sie wollen, ist ein Klondetektor genannt. Dies ist ein Werkzeug, das ähnliche Codefragmente in einer oder mehreren Dateien findet.

Unsere CloneDR ist eines dieser Tools. Es funktioniert, indem es die Programmstruktur und nicht den Programmtext vergleicht, also ändert Formatierungen und Kommentare es nicht. (Es verwendet tatsächliche Sprachparser, um die Programmstruktur zu extrahieren; viele andere Detektoren stimmen nur mit Text- oder Programmtoken überein). Darüber hinaus wird CloneDR ähnliche Code-Blöcke (mit einem hohen Grad an Ähnlichkeit) entdecken, und kann genau identifizieren, wie sie unterschiedlich sind (wir nennen die Unterschiede "Parameter", wie Sie erahnt haben). Sie können die erstellten Berichte über den Standortlink sehen.

+0

Vielen Dank für Ihre Antwort. Aber ich möchte ein eigenes Tool erstellen, das für einen bestimmten Fall verwendet wird. Also ich möchte technischen Leitfaden, wie kann ich mit String-Überprüfung und Mismatch identifizieren gehen .. Vielen Dank für die Suche. – Pal

+0

OK, siehe meine Arbeit, wie man einen Klondetektor erstellt: "Klondetektion mit abstrakten Syntaxbäumen" http://www.semanticdesigns.com/Company/Publications/ICSM98.pdf Sie werden herausfinden, dass dies eine Menge ist Arbeit. –

Verwandte Themen