Как изменить длину поля в QGIS

11

У меня есть шейп-файл, который я сделал в QGIS 1.7.4. Одним из полей является строка длиной 80. Я бы хотел, чтобы поле принимало более длинные строки, но я не могу понять, как изменить его длину. Как мне это сделать?

Спасибо.

Evan
источник

Ответы:

15

Вот решение, которое удивило меня, что это сработало !!!

Предупреждение: сначала сделайте резервную копию. Это эксперимент, хотя он работал для меня только сейчас ..

откройте .dbf определенного шейп-файла с помощью приложения OpenOffice Calc. Измените значение с 80 на любое значение, которое вы хотите. Пожалуйста, смотрите изображение ниже. Удивительно, но эти определения полей не были видны в Excel. Преимущество быть открытым !!

введите описание изображения здесь

Винаян
источник
+1 - отличный маленький трюк. Всегда находил эти цифры раздражающими в библиотеках Libre / Openoffice, но теперь вижу их применение.
Симбамангу
1
Во-вторых, я использую его довольно часто для быстрого и грязного редактирования и форматирования данных (особенно когда я хочу использовать формулы Cals), или когда я просто хочу объединить некоторые данные по местоположению, и еще раз имя поля превращается в auf, чтобы быть слишком долго ... Только запомните: не сортируйте строки без столбца FID, чтобы правильно их переставить, иначе у каждого объекта будут неправильные атрибутные данные.
Сандерка
Я попробовал это, и это повредило значения в последующих столбцах. Это умная идея, хотя.
Эван
2
До сих пор я никогда не сталкивался с повреждением данных. Вы случайно изменили типы данных (например, C обозначает символ, подробнее об этом рассказывается здесь: dbase.com/knowledgebase/int/db7_file_fmt.htm )? Хотя Calc предупреждает вас, если вы пытаетесь сохранить dbf с данными, которые не соответствуют заголовку. Я до сих пор не совсем понимаю, каким образом ваши данные будут повреждены, это может означать что угодно ...
SAnderka
2
А что касается сортировки: связь между данными объектов (полигоны, точки, линии) и данными атрибутов создается по номеру строки; если вы прибегнете к какому-либо файлу атрибутов в Calc и сохраните его, неверные атрибуты будут связаны с вашим особенности (смешанные, так сказать).
Сандерка,
12

Насколько мне известно, вы не можете изменять длину полей шейп-файлов в QGIS. Рекомендую создать новое поле:

  • Открыть таблицу атрибутов
  • Переключить редактирование на
  • Выберите «Новый столбец» и установите
    тип текста и выберите желаемую ширину

Если в старом поле уже есть данные, используйте калькулятор поля, чтобы заполнить новое поле:

  • Выберите «Калькулятор поля»
  • Отметьте «Обновить существующее поле» и выберите новое поле.
  • Дважды щелкните старое имя поля в разделе «Поля».
  • Нажмите «ОК» и не забудьте сохранить свои правки.
SCRo
источник
Хороший метод В конце этих шагов зайдите в Table Manager (плагин), чтобы удалить старое поле, и (при необходимости) переименуйте новое поле.
Янв
4

Я только что сделал это в Excel. откройте базу данных в Excel, щелкните правой кнопкой мыши заголовок столбца, который хотите изменить, и выберите «Ширина столбца». Измените на нужную вам длину, затем сохраните как dbf. Казалось, работает хорошо для меня.

Даррен
источник
Разве ширина столбца не должна быть шириной отображения столбца?
Винаян
3
@Vinayan, вопрос явно относится к тому, что поле может содержать, а не к тому, как оно отображается в QGIS. Excel использует ширину отображения столбцов в качестве ориентира для определения ширины поля при сохранении файла, поэтому этот ответ работает. Для получения подробной информации, пожалуйста, посетите quantdec.com/SYSEN597/GTKAV/section4/chapter_15a.htm#Recipe . Однако это работает только в старых версиях Excel. Последний не будет записывать файлы DBF, которые я слышу :-(.
whuber
@whuber, это интересно .. я бы никогда не включил этот тип функциональности (изменение размера) в мои приложения :-)
vinayan
0

Руководство по изменению размера столбца для таблицы атрибутов в QGIS

  1. Нажмите правой кнопкой мыши на векторный слой и выберите свойства.
  2. Перейти на вкладку поля.
  3. Добавить новый столбец (эта кнопка находится в верхнем правом углу. A. Убедитесь, что все данные соответствуют столбцу, который вы пытаетесь расширить. За исключением изменения длины на желаемую длину.
  4. Выберите кнопку «Калькулятор поля» (эта кнопка находится в верхнем правом углу).
  5. Отметьте «Обновить существующее поле»
  6. Убедитесь, что «Обновить только выбранное поле» не отмечено.
  7. Выберите новое поле в меню рядом с флажками
  8. Под полевым меню дважды щелкните старое поле
  9. Хит хорошо и сохранить изменения
  10. * Перейти к плагину Table Manager a. PlugingsTableTable Manager
  11. Выберите и удалите старое поле
  12. Переименуйте новое поле в старое.

* Вам нужно будет установить плагин Table Manager.

YP-кун
источник
0

Решение Scro, как более подробно объяснил YP-кун, просто сработало для меня. Одно изменение теперь с QGIS 3.4, нет необходимости использовать Table Manager для шагов 10 и 11 YP-куна (чтобы удалить старый столбец). Фактически, Table Manager, по-видимому, больше не существует, так как он теперь недоступен в Plugin Manager. Теперь, после шагов 1-9 YP-куна, вы можете перейти к Свойствам слоя для слоя (дважды щелкните по слою на панели «Слой» или щелкните правой кнопкой мыши на нем и выберите «Свойства»)> Исходные поля> нажмите кнопку редактирования> затем выберите старое поле, которое вы хотите удалить> нажмите кнопку «Удалить поле»> затем снова отредактируйте кнопку, чтобы закрыть редактирование> сохранить изменения. Кажется, что нужно многое изменить, чтобы изменить длину одного поля в одном слое, но пусть будет так.

JJD
источник