Frage

arbeitete ich mit ESRI Shape-Datei-Format jetzt, und ich habe ein Problem mit wechselndem / Bearbeiten von Datenbankfeldgröße. Ich habe ein Feld mit 200 Länge / Größe und jetzt ich will es nur 80 Länge / Größe (Raum & andere Verbesserung).

Allerdings kann ich nicht Feldgröße bearbeitet mehr :( kann jemand darauf hinweisen, wie die Feldgröße zu ändern?

Btw, ich habe versucht, Dienstprogramme wie DBF Explorer, die Feldgröße bearbeiten kann, aber wenn ich Feldgröße auf char / Textfeld ändern, Daten auf float / numerisches Feld gelöscht werden :(
DBF Explorer

PS: ESRI Datenbank Verwendung DBF-Erweiterung, die ich denke, es war DBASE III plus oder dBASE IV-Format

War es hilfreich?

Lösung

Sie können den Header der Datei bearbeiten es mit jedem Hexadezimal-Editor geändert werden.

Byte 10-11: stellt die lenth eines Datensatzes (niedrigstwertiges Byte zuerst)

beginnend bei Byte 48 eine wiederholte Struktur (48 Bytes pro Stück) beschreibt das Feld ein. Das Byte 33 dieser Struktur stellen die Länge.

Andere Tipps

Do nicht die Header bearbeiten, wird die Daten ausgerichtet von festen Offset und die Größe des Feldes, um etwas zu ändern, die die physischen nicht überein Länge des Datensatzes WILL korrupt Tisch.

Sie brauchen etwas, das / Schreib DBFs lesen kann dies effektiv zu tun. Ein alter von DBase installieren funktionieren wird, obwohl Sie besser mit Visual FoxPro sein würde (die FoxPro-Befehl wäre MODI STRU , die kurz ist " STRUKTUR ÄNDERN "). Ich würde auch bei anderen Werkzeugen suchen, um die Daten in andere Formate Push / Pull. Wenn Sie Zugriff auf Access (verzeihen Sie das Wortspiel) haben, können Sie immer die Daten importieren in Access als Access-Tabelle, restrukturieren die Tabelle, dann exportieren Sie es aus, obwohl beginnend mit Access 2007, gebürtiger DBF / FoxPro Unterstützung wurde mehr oder weniger entfernt, ODBC erfordern. Andere (zeitaufwendigere) Maßnahmen wären:

  • Blick auf Excel (vorausgesetzt, die Daten haben nur sehr wenige Zeilen können nur ältere Versionen behandeln 32k oder 64k Zeilen gesamt)
  • einige Python verwenden, um Lese / Schreib-Daten (do a Suche auf SO für diese Info)
  • eine Variante der oben in Perl / Ruby-/ {einfügen Lieblingsskriptsprache mit einer DBF-Bibliothek}
  • Verwendung ODBC + {insert cheapo Datenbank hier} + {cheapo Admin-Tool einsetzen für cheapo Datenbank, die eine Tabelle hier ändern kann} + Export aus {Cheapo Datenbank}

Um die Feldgröße in einer DBF-Datei bearbeitet ich Openoffice verwenden. In OpenOfficeSpreadsheet würden die DBF Feild Namen wie "FEILDNAME, C, 200" vorgestellt. Um die Größe zu ändern von 200 -> 80 Sie müßten die Feldnamen Schange zu: „FEILDNAME, C, 80“ und dann die DBF-Datei speichern

Die dBase III (Art).

Die DBF-Datei enthalten beide die Meta-Daten (wie Feldgröße und Typ) und die Daten. Sie sind alle mit fester Größe gespeichert.

Ich kann mich nicht erinnern, wenn es Tools sind die Feldgröße zu ändern, aber Sie können eine neue Tabelle erstellen und die Daten kopieren. Aber das Format ist nicht so schwer.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top