Compare und Export der Unterschiede

13. März 2015 11:58

Hallo zusammen,

ich möchte zwei Objekte, welche ich als .txt-Files aus meiner Datenbank exportiert habe, vergleichen und die Anpassungen aus nur einer der beiden Dateien (das Delta) ausgeben lassen. Mit WinMerge kann man zwar eine Patch-Datei generieren lassen, in dieser sind aber die Zeilen aus beiden Dateien enthalten. Mit pspad kann man fehlende Zeilen in ein neues Dokument einfügen. Auch hier werden allerdings die fehlenden Zeilen aus beiden Dateien genommen. Ich bin also auf der Suche nach einem Programm, welches mir nur die Unterschiede einer der beiden Dateien in ein neues Dokument einfügt. Vielleicht habt ihr ja eine Idee ;)

Gruß pax

Re: Compare und Export der Unterschiede

13. März 2015 14:46

Dafür gibt es ein PowerShell Cmdlet: Compare-NAVApplicationObject

http://blogs.msdn.com/b/nav/archive/2014/07/07/merging-application-objects-using-windows-powershell.aspx

http://saurav-nav.blogspot.de/2014/10/application-merge-utilities-how-to-use_15.html

Re: Compare und Export der Unterschiede

13. März 2015 15:13

Danke, das wird bestimmt helfen ;)

Re: Compare und Export der Unterschiede

16. März 2015 11:46

Hallo kowa,

ich habe mir die Inhalte der Links durchgelesen und konnte den Vorgang soweit auch nachstellen. Leider musste ich jedoch feststellen, dass sich in meinem finalen Delta-File wieder sowohl der Orginal-Wert und der Modified-Wert befinden.

{ PropertyModification;
Target="Description 2"(Field 5);
Property=CaptionML;
OriginalValue=[DEU=Beschreibung 2;
ENU=Description 2];
ModifiedValue=[ENU=Description 2;
ESP=Descripci¢n 2] }


Verwendet habe ich den folgenden Befehl:
Compare-NAVApplicationObject -Delta C:\...\DELTA.txt -Modified C:\...\modified.txt -Original C:\...\demo.txt -Force -PassThru


Wo liegt der Fehler? Kann ich der Powershell innerhalb des Befehls mitteilen, dass ich nur die Modified-Werte im Delta-File haben möchte?

Gruß pax

Re: Compare und Export der Unterschiede

16. März 2015 12:39

Das geht nicht, weil diese Deltadateien als Zwischenstufe im Mergeprozess verwendet werden. Man kann entweder einstufig mit Merge-NAVApplicationObject mergen, oder zweistufig mit dem Compare- und Update-NAVApplicationObject. Da müssen also alle Informationen erhalten bleiben, die dafür benötigt werden. Abweichende Sprachlayer werden dabei vorher entfernt und anschließend wieder zugefügt (Link).

Re: Compare und Export der Unterschiede

16. März 2015 12:53

Okay danke. Dann muss ich wohl nach einer anderen Lösung suchen. Das Thema kann geschlossen werden ;)

Re: Compare und Export der Unterschiede

16. März 2015 14:54

Hallo,

ich denke da hilft mal wieder nur eine Anleihe aus der Steinzeit bei Linux/Unix :mrgreen:

folgender Befehl : dürfte funktionieren
Code:
diff DATEI1 DATEI2|egrep "(^<|^>)"


Wenn du das ganze ohne die Pfeile am Zeilenanfang haben möchtest, dann sieht das etwa so aus:
Code:
diff DATEI1 DATEI2|egrep "(^<|^>)"|sed -e "s/^< //;s/^> //"


Wenn du das ganze in einer Datei benötigst:
Code:
diff DATEI1 DATEI2|egrep "(^<|^>)"|sed -e "s/^< //;s/^> //">DATEI3


Du bekommst diese Tools (diff, grep, sed) hier. Wenn du ein Linux- System hast, dann sollten die Programme schon drauf sein. :mrgreen:

Falls du das für die Captions benötigst, hatten wir das hier schon mal.

Gruß, Fiddi

Re: Compare und Export der Unterschiede

16. März 2015 17:01

fiddi hat geschrieben:ich denke da hilft mal wieder nur eine Anleihe aus der Steinzeit bei Linux/Unix :mrgreen:

Für reine Dateivergleiche bietet sich aber auch das Beschäftigen mit PowerShell an :wink: . Hier wird z.B. in einem Script das normale Compare-Object Cmdlet genutzt (das hat nichts mit dem obigen NAV-Cmdlet zu tun):
http://www.leeholmes.com/blog/2013/11/29/using-powershell-to-compare-diff-files/