![]() |
Genauer Zeilenvergleich zweier Textdateien - wie ?
Hallo,
ich suche einen schnellen Algorithmus (falls es überhaupt einen gibt) mit dem man Unterschiede in zwei Dateien farblich markieren kann - im Prinzip ein FileCompare für Textdateien. Habe schon die Suche hier bemüht, bin aber nicht wirklich erfolgreich gewesen. Zur Veranschaulichung meines Anliegens ein kleines Beispiel. Ich gehe von 2 Dateien aus. Beide sind am Anfang identisch - Datei 2 ist eine Kopie von Datei 1.
Code:
Nun werden an der Datei 2 folgende Änderungen vorgenommen:
Datei 1: Datei 2:
Zeile 1 Zeile 1 Zeile 2 Zeile 2 Zeile 3 Zeile 3 Zeile 4 Zeile 4 Zeile 5 Zeile 5 Zeile 6 Zeile 6 1. Hinter "Zeile 1" wurde eine neue Zeile hinzugefügt 2. "Zeile 3" wurde in "Zeilee 3" geändert 3. Zeilen 4 und 5 wurden gelöscht Das Ergebnis sieht dann so aus
Code:
Jetzt möchte ich diese beiden Dateien miteinander vergleichen um zu sehen was ich in der Datei 2 gegenüber der Datei 1 verändert hat. Was ich nun als Ergebnis bräuchte wäre in etwas sowas:
Datei 1: Datei 2:
Zeile 1 Zeile 1 Zeile 2 Neue Zeile eingefügt Zeile 3 Zeile 2 Zeile 4 Zeilee 3 Zeile 5 Zeile 6 Zeile 6
Code:
Hat jemand evtl. sowas schon gemacht und kann mir ein paar Tipps geben ?
Datei 1: Datei 2:
Zeile 1 Zeile 1 Neue Zeile eingefügt (in grün - steht für "neu hinzugekommen") Zeile 2 Zeile 2 Zeile 3 Zeilee 3 (in blau - steht für "modifiziert") Zeile 4 Zeile 4 (in rot - steht für "gelöscht") Zeile 5 Zeile 5 (in rot - steht für "gelöscht") Zeile 6 Zeile 6 Grüße Thomas |
Re: Genauer Zeilenvergleich zweier Textdateien - wie ?
|
Re: Genauer Zeilenvergleich zweier Textdateien - wie ?
Ich hab' mal eine Diff-Unit zu einem
![]() ![]() |
Re: Genauer Zeilenvergleich zweier Textdateien - wie ?
sorry, mal eine unbedeutende frage, wie willst du wissen ob eine zeile eingefügt wurde oder ob die selbe zeile neu geschrieben wurde? hier kannst du nur mit wahrscheinlichkeiten mit einem blick in die kristallkugel hantieren. sicher kannst du das nie sagen. du kannst höchstens versuchen voraus- und zurückschauend zu analysieren und dann über bestimmete wahrscheinlichkeiten ausagen treffen... aber das ist nix halbes und nix ganzes ... als einfaches hilfsmittel könnte das noch genügen... aber zuverlässig ist das nicht...
... für was brauchste das? |
Re: Genauer Zeilenvergleich zweier Textdateien - wie ?
Kennst du solche Tools nicht?
Mein angegebener Link auf KDiff3 ist, wie ich finde, ein sehr schönes Beispiel. Das Tool einfach nur genial. Und das hat rein gar nichts mit Wahrscheinlichkeiten zu tun... |
Re: Genauer Zeilenvergleich zweier Textdateien - wie ?
Hallo,
danke für die bisherigen Antworten - das hilft mir schon weiter. Ich werde mir die Beschreibungen zu Gemüte ziehen. Das ist zwar schwere Kost aber ich möchte das auch verstehen und nicht nur anwenden :D Zitat:
Grüße Thomas |
Re: Genauer Zeilenvergleich zweier Textdateien - wie ?
Zitat:
Hach, wie schön, wenn man den Tag mit etwas Haarspalterei beginnen kann. Jedenfalls wollte ich nochmal ![]() ![]() Und zur Frage, wozu man so etwas braucht - für professionelle Quellcode-Versionsverwaltung sind solche Tools absolut unverzichtbar. |
Re: Genauer Zeilenvergleich zweier Textdateien - wie ?
Moin, Moin.
Um die Haarspalterei weiter zu führen: Es ist ja nicht nur die Frage, ob eine Zeile in der einen Datei neu eingefügt oder eine bestehende Zeile verändert wurde. Es kann ja auch in der "anderen" Datei eine Zeile gelöscht worden sein, dann wurde in der betrachteten Datei weder etwas eingefügt, noch verändert. Trotzdem sind die Dateien dann unterschiedlich. Um diese Veränderung korrekt zu verfolgen - und zu benennen - müsste m.E. eine Historie der Vergleiche gespeichert werden. Gruß Ralph |
Re: Genauer Zeilenvergleich zweier Textdateien - wie ?
Wenn in der zweiten Datei eine Zeile gelöscht wurde, wird sie in der ersten Datei als gelöscht markiert. Dazu braucht man noch keine Historie.
|
Re: Genauer Zeilenvergleich zweier Textdateien - wie ?
Ähhh, habe ich da jetzt was übersehen? Wenn ich mit einem beliebigen Programm in einer beliebigen Datei eine Zeile lösche, wie kann dann in einer zweiten (unbekannten) Datei eine Löschmarkierung gesetzt werden?
Gruß Ralph |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz