So ändern Sie die Feldlänge in QGIS

11

Ich habe ein Shapefile, das ich in QGIS 1.7.4 erstellt habe. Eines der Felder ist eine Zeichenfolge mit der Länge 80. Ich möchte, dass das Feld längere Stiche akzeptiert, kann aber nicht herausfinden, wie die Länge geändert werden kann. Wie mache ich das?

Vielen Dank.

Evan
quelle

Antworten:

15

Hier ist eine Lösung, die mich überrascht hat, dass es funktioniert hat !!!

Warnung: Erstellen Sie zuerst ein Backup. Dies ist ein Experiment, obwohl es gerade für mich funktioniert hat.

Öffnen Sie die .dbf des jeweiligen Shapefiles mit der Anwendung OpenOffice Calc. Ändern Sie den Wert von 80 auf den gewünschten Wert. Bitte sehen Sie das Bild unten. Überraschend ist, dass diese Felddefinitionen in Excel nicht sichtbar waren. Vorteil der Offenheit !!

Geben Sie hier die Bildbeschreibung ein

Vinayan
quelle
+1 - ausgezeichneter kleiner Trick. Ich fand diese Zahlen in Libre / Openoffice-DBFs immer ärgerlich, sehe aber jetzt die Verwendung.
Simbamangu
1
Ich verwende dies ziemlich oft, um Daten schnell und schmutzig zu bearbeiten und zu formatieren (insbesondere, wenn ich die Formeln von Cals verwenden möchte) oder wenn ich nur einige Daten nach Standort verknüpfen möchte und der Feldname wieder auf wird zu lang ... Denken Sie daran: Sortieren Sie die Zeilen nicht ohne eine FID-Spalte neu, um sie korrekt neu anzuordnen. Andernfalls weist jedes Feature anschließend falsche Attributdaten auf.
SAnderka
Ich habe es versucht und es hat die Werte in den folgenden Spalten beschädigt. Es ist jedoch eine kluge Idee.
Evan
2
Ich habe bisher noch nie eine Datenkorruption erlebt. Haben Sie versehentlich Datentypen geändert (C steht beispielsweise für Zeichen, mehr wird hier erklärt: dbase.com/knowledgebase/int/db7_file_fmt.htm )? Obwohl Calc Sie warnt, wenn Sie versuchen, eine Datenbank mit Daten zu speichern, die nicht in den Header passen. Ich verstehe immer noch nicht ganz, auf welche Weise Ihre Daten beschädigt werden, das könnte fast alles bedeuten ...
SAnderka
2
Und zur Sortierung: Die Verbindung zwischen Feature-Daten (Polygone, Punkte, Linien) und den Attributdaten scheint nach Zeilennummer hergestellt zu sein. Wenn Sie eine Attributdatei in Calc neu sortieren und speichern, werden falsche Attribute mit Ihrer verbunden Features (sozusagen verwechselt).
SAnderka
12

Meines Wissens können Sie die Länge von Shapefile-Feldern in QGIS nicht ändern. Empfehlen Sie, ein neues Feld zu erstellen:

  • Attributtabelle öffnen
  • Bearbeiten Sie die Bearbeitung ein
  • Wählen Sie 'Neue Spalte' und setzen Sie den
    Typ auf Text und wählen Sie die gewünschte Breite

Wenn das alte Feld bereits Daten enthält, füllen Sie das neue Feld mit dem Feldrechner aus:

  • Wählen Sie 'Feldrechner'
  • Aktivieren Sie "Vorhandenes Feld aktualisieren" und wählen Sie das neue Feld aus
  • Doppelklicken Sie unter 'Felder' auf den alten Feldnamen.
  • Klicken Sie auf "OK" und vergessen Sie nicht, Ihre Änderungen zu speichern.
Scro
quelle
Gute Methode. Rufen Sie am Ende dieser Schritte den Tabellenmanager (ein Plugin) auf, um das alte Feld zu löschen, und benennen Sie das neue Feld (falls erforderlich) um.
IanS
4

Ich habe das gerade in Excel gemacht. Öffnen Sie die Datenbank in Excel, klicken Sie mit der rechten Maustaste auf die Spaltenüberschrift, die Sie ändern möchten, und wählen Sie Spaltenbreite aus. Ändern Sie die gewünschte Länge und speichern Sie sie als Datenbank. Schien für mich in Ordnung zu sein.

Darren
quelle
Soll die Spaltenbreite nicht die Anzeigebreite der Spalte sein?
Vinayan
3
@ Vinayan, die Frage bezieht sich explizit darauf, was das Feld enthalten kann, nicht darauf, wie es in QGIS angezeigt wird. Excel verwendet die Anzeigebreite der Spalten als Richtlinie dafür, wie breit das Feld beim Speichern der Datei sein soll. Aus diesem Grund funktioniert diese Antwort. Weitere Informationen finden Sie unter quantdec.com/SYSEN597/GTKAV/section4/chapter_15a.htm#Recipe . Es funktioniert jedoch nur in älteren Versionen von Excel. Die neuesten werden keine DBF-Dateien schreiben, die ich höre :-(.
whuber
@ Whuber, das ist interessant. Ich würde diese Art von Funktionalität (Größenänderung) niemals in meine Anwendungen aufnehmen :-)
Vinayan
0

Anleitung zum Ändern der Spaltengröße für die Attributtabelle in QGIS

  1. Klicken Sie mit der rechten Maustaste auf die Vektorebene und wählen Sie Eigenschaften aus.
  2. Gehen Sie zur Feldregisterkarte.
  3. Hinzufügen einer neuen Spalte (Diese Schaltfläche befindet sich in der oberen rechten Ecke. A. Stellen Sie sicher, dass alle Daten mit der Spalte übereinstimmen, die Sie sind, und versuchen Sie zu erweitern. Mit Ausnahme der Länge ändern Sie diese auf die gewünschte Länge.
  4. Wählen Sie die Schaltfläche 'Feldrechner' (Diese Schaltfläche befindet sich in der oberen rechten Ecke.)
  5. Aktivieren Sie das Kontrollkästchen "Vorhandenes Feld aktualisieren".
  6. Stellen Sie sicher, dass "Nur ausgewähltes Feld aktualisieren" deaktiviert ist.
  7. Wählen Sie ein neues Feld aus dem Menü direkt neben den Kontrollkästchen
  8. Doppelklicken Sie im Feldmenü auf das alte Feld
  9. Klicken Sie auf OK und speichern Sie die Änderungen
  10. * Gehen Sie zum Table Manager Plugin a. PlugingsTableTable Manager
  11. Altes Feld auswählen und löschen
  12. Benennen Sie das neue Feld in ein altes um.

* Sie müssen das Table Manager Plugin installieren.

YP-Kun
quelle
0

Die von YP-kun ausführlich erläuterte Lösung von Scro hat gerade für mich funktioniert. Eine Änderung jetzt mit QGIS 3.4, keine Notwendigkeit, Table Manager für die Schritte 10 und 11 von YP-kun zu verwenden (um die alte Spalte zu löschen). Tatsächlich ist Table Manager anscheinend nicht mehr verfügbar, da er jetzt nicht im Plugin Manager verfügbar ist. Nach den Schritten 1 bis 9 von YP-kun können Sie nun zu Ebeneneigenschaften für die Ebene wechseln (doppelklicken Sie im Ebenenbedienfeld auf die Ebene oder klicken Sie mit der rechten Maustaste darauf und klicken Sie auf Eigenschaften)> Quellfelder> klicken Sie auf die Schaltfläche Bearbeiten> Wählen Sie dann das alte Feld aus, das Sie löschen möchten, klicken Sie auf die Schaltfläche Feld löschen, und bearbeiten Sie die Schaltfläche erneut, um die Bearbeitung zu schließen. Speichern Sie Ihre Änderungen. Es scheint viel zu tun zu sein, um die Länge eines einzelnen Feldes in einer einzelnen Ebene zu ändern, aber so soll es sein.

JJD
quelle