Dateivergleich (Data Management)
Zusammenfassung
Vergleicht zwei Dateien und gibt die Vergleichsergebnisse zurück. Mit "Dateivergleich" können die Unterschiede zwischen zwei ASCII-Dateien oder zwei Binärdateien in einem Bericht ausgegeben werden.
Verwendung
-
Mit dem Werkzeug werden Meldungen mit den Vergleichsergebnissen zurückgegeben. Standardmäßig beendet das Werkzeug die Ausführung nach dem Auffinden des ersten Übereinstimmungsfehlers. Sollen alle Abweichungen in den Bericht aufgenommen werden, legen Sie die Option zum Fortsetzen der Vergleichsoperation auf "True" fest.
-
Dieses Werkzeug unterstützt die Maskierung von Zeichen, Wörtern und Textzeilen in einer ASCII-Datei. So können die Dateien beispielsweise identisch sein bis auf die Tatsache, dass sie Text mit dem Datum und der Uhrzeit der Erstellung enthalten. Somit würde ein Übereinstimmungsfehler gemeldet. Außerdem treten kleine Abweichungen auf, die darauf beruhen, dass bei den verschiedenen Plattformen Zahlen unterschiedlich gespeichert oder bearbeitet werden. Dies führt zwischen den Plattformen zu Abweichungen bei der Zahlengenauigkeit. So meldet die SunOS-Plattform möglicherweise den Wert 415,999999999, während Windows XP 416,000000000 meldet. Für den Umgang mit falschen Zeichenvergleichen bietet "Dateivergleich" verschiedene Maskierungsfunktionen. Bearbeiten Sie vor dem Vergleich neuer Textdateien mit vorhandenen Basisdateien die Basisdateien, um diese Maskierungssymbole hinzuzufügen.
- "#" – Das einfachste Maskierungssymbol ist das Symbol "#". An allen Stellen, an denen in der Eingabe-Basisdatei ein "#" erscheint, wird das dazugehörige Zeichen in der Eingabe-Testdatei ignoriert.
Base: Y delta = 9048.6# Test: Y delta = 9048.61
- "??" – Ein weiteres Maskierungswerkzeug ist die Symbolkombination "??". Zur Maskierung eines vollständigen Wortes fügen Sie am Wortanfang "??" hinzu.
Base: Processing ??ESRI1/ARCIGDS/TESTRUN/CONV/ARCIGDS/CPXSHAPE.DGN Test: Processing ESRI2/ARCIGDS/TESTRUN/CONV/ARCIGDS/CPXSHAPE2.DGN
- "?!" – In ein einzelnes Token ist möglicherweise ein "." (Punkt) eingebettet. Ein offensichtliches Beispiel hierfür wäre der Name einer Datei mit einer Erweiterung: Straßennamen.dbf. Unter bestimmten Umständen möchten Sie vielleicht einen Teil des Namens (vor oder nach dem ".") beim Vergleich des Tokens ignorieren.
Base: Master table is: streetnames?!.dbf Test: Master table is: streetnames
- "???" – Hiermit wird die gesamte nachfolgende Zeile maskiert.
Base: ??? 8 4 1 0 14 10 Test: 12 8 2 1 16 12
- "#" – Das einfachste Maskierungssymbol ist das Symbol "#". An allen Stellen, an denen in der Eingabe-Basisdatei ein "#" erscheint, wird das dazugehörige Zeichen in der Eingabe-Testdatei ignoriert.
-
ASCII ist der Standarddateityp. Ändern Sie den Dateityp bei der Eingabe von Binärdateien in BINARY.
-
Wird für ASCII-Dateien ein Übereinstimmungsfehler ausgegeben, werden Unterschiede, wie zum Beispiel eine abweichende Gesamtzeichenzahl, gemeldet und die Abweichungen für die einzelnen Zeilen aufgeführt.
-
Tritt ein Übereinstimmungsfehler für Binärdateien auf, wird die Meldung ausgegeben, dass die Dateigrößen unterschiedlich sind. Außerdem werden die Abweichungen für die einzelnen Byte aufgeführt.
-
Die Ausgabe-Vergleichsdatei enthält alle Ähnlichkeiten und Unterschiede zwischen der Eingabe-Basisdatei und der Eingabe-Testdatei. Diese Datei ist eine kommagetrennte Textdatei, die in ArcGIS als Tabelle angezeigt und verwendet werden kann.
-
Das ResultObject des Vergleichswerkzeugs hat den Wert "true", wenn keine Unterschiede gefunden werden, und den Wert "false", wenn Unterschiede festgestellt werden.
Syntax
Parameter | Erläuterung | Datentyp |
in_base_file |
Die Eingabe-Basisdatei wird mit der Eingabe-Testdatei verglichen. Die Eingabe-Basisdatei bezieht sich auf eine von Ihnen für gültig erklärte Datei. Die Basisdatei verfügt über den richtigen Inhalt und die richtigen Informationen. | File |
in_test_file |
Die Eingabe-Testdatei wird mit der Eingabe-Basisdatei verglichen. Die Eingabe-Testdatei bezieht sich auf eine Datei, an der Sie durch Bearbeiten oder Kompilieren neuer Informationen Änderungen vorgenommen haben. | File |
file_type (optional) |
Die zu vergleichenden Dateitypen.
| String |
continue_compare (optional) |
Gibt an, ob nach dem Auffinden des ersten Übereinstimmungsfehlers alle Eigenschaften verglichen werden sollen.
| Boolean |
out_compare_file (optional) |
Diese Datei enthält alle Ähnlichkeiten und Unterschiede zwischen der Eingabe-Basisdatei und der Eingabe-Testdatei. Diese Datei ist eine kommagetrennte Textdatei, die in ArcGIS als Tabelle angezeigt und verwendet werden kann. | File |
Codebeispiel
Das folgende Skript im Python-Fenster veranschaulicht, wie die Funktion "FileCompare" im unmittelbaren Modus verwendet wird.
import arcpy arcpy.FileCompare_management(r'C:/Workspace/well_xycoordinates.txt', r'C:/Workspace/new_well_coordinates.txt', 'ASCII', 'CONTINUE_COMPARE', r'C:/Workspace/well_file_compare.txt' )
Beispiel für die Verwendung des Werkzeugs "FileCompare" in einem eigenständigen Skript.
# Name: FileCompare.py # Description: Compare two text files and return comparison result. # Author: ESRI # import system modules import arcpy try: # Set local variables base_file= "C:/Workspace/well_xycoordinates.txt" test_file= "C:/Workspace/new_well_coordinates.txt" file_type = "ASCII" continue_compare = "CONTINUE_COMPARE" compare_file = "C:/Workspace/well_file_compare.txt" # Process: FeatureCompare compare_result = arcpy.FileCompare_management(base_file, test_features, file_type, continue_compare, compare_file) print compare_result print arcpy.GetMessages() except: # Print error message if an error occurs print arcpy.GetMessages()