Hallo,
ich habe in 2 Perl Skalaren jeweils einen Text. Der 1. ist das Original. Im 2. steht die Änderung des 1. Nun bräuchte ich eine Übersicht der Änderungen. Einfügungen, Löschungen und Änderungen. Natürlich muss so etwas programmierert werden. Ist ja nicht so trivial und bestimmt aufwendig. Hat so etwas jemand schon einmal gemacht?
Thomas
Erstmal zum Verständnis
Hallo Thomas,
also verstehe ich dich , dass Du etwas in der Art:
$1=„Dies ist der originaltext von mir“;
$2=„Das ist jetzt der Originaltext“;
[Black-Box]
$3=„Das [Dies] ist jetzt der O_[o]_riginaltext (von mir)“;
willst ? Oder ?
Arne
Ich hoffe du willst mich nicht nur heiß machen.
Ja genau! Das ist es.
Thomas
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
hmmm… also das ist wirklich nicht trivial.
Wenn Wortweise Betrachtung reicht:
den String in einzelne Wörter zerlegen, die Wörter Zeichen für Zeichen vergleichen und bei Unterschied mit den folgenden Wörtern vergleichen.
kein Treffer => neues Wort (ersetzung)
Treffer => alle Worte dazwischen wurden gelöscht / ersetzt.
Sowas in der Art ?
Arne
Hallo Arne,
und ich hab mir wirklich schon Illusionen gemacht. Na ja.
Wenn so etwas programmieret werden muss dann muss ich mich halt hinsetzen. Ich dachte halt nur, es gäbe vielleicht schon so etwas, das man verwenden kann.
Danke trotzdem,
Thomas
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hi Thomas,
ich habe in 2 Perl Skalaren jeweils einen Text. Der 1. ist das
Original. Im 2. steht die Änderung des 1. Nun bräuchte ich
eine Übersicht der Änderungen. Einfügungen, Löschungen und
Änderungen. Natürlich muss so etwas programmierert werden. Ist
ja nicht so trivial und bestimmt aufwendig. Hat so etwas
jemand schon einmal gemacht?
Am einfachsten ist es, Du benutzt das Programm „diff“,
das standardmaessig unter Linux/UNIX zur Verfuegung
steht. Das zeigt dir alle Unterschiede zwischen 2 Dateien (!)
an.
Syntax: diff datei1 datei2
Beispiel:
t1.txt:
Dies ist ein Test
Zweite Zeile
END
t2.txt:
Dies ist ein Test
Zwte Zeile
END
bash-2.02# diff t1.txt t2.txt
2,3c2,3
Zwte Zeile
\> END
Das Tool gibt es auch als Windowsportierung.
Ausserdem findet es sich im Editor Emacs unter
dem Namen „ediff“.
Gruss,
-Andreas.