2009-03-16 4 views
2

Я работал с форматом шейпинга ESRI прямо сейчас, и у меня есть некоторые проблемы с изменением/редактированием размера поля базы данных. Я создал поле с длиной 200 или более, и теперь я хочу, чтобы он был всего лишь 80 длина/размер (пробел & другие улучшения).Изменение размера поля DBF

Однако я не могу изменить размер поля больше :(может кто-то указать на то, как изменить размер поля?

Btw я пытавшиеся утилиты, такие как DBF Explorer, который может редактировать размер поля, но когда я изменить поле размер на символ/текстовое поле, данные о флоат/числовом поле удаляются :(
DBF Explorer

PS: ESRI расширение использования базы данных .dbf, который я думаю, что это было DBASE III плюс или DBASE IV формат

ответ

1

Вы можете отредактировать заголовок файла, чтобы изменить его с помощью любого шестнадцатеричного редактора.

байт 10-11: представляет собой Lenth из записи (младший байт)

начиная с байта 48 повторный структура (48 байт каждый), описывающие поле. Байт 33 этой структуры представляет собой длину.

+0

hex-редактор звучит неплохо, надеюсь, что он не испортит данные, которые уже внутри, я попробую, спасибо: D – Dels

+0

просто любопытно, это повредило таблицу? –

1

его DBASE III (вид).

Файл dbf содержит метаданные (например, размер и тип поля) и данные. Все они имеют фиксированный размер.

Не могу вспомнить, есть ли инструменты для изменения поля, но вы можете создать новую таблицу и скопировать данные. Но the format не так уж сложно.

+0

если я создаю новую таблицу, как насчет информации о Fid, Shapetype и т. Д., Которые скрыты, но связаны с файлом .shp? – Dels

+0

Порядок и другая информация должны быть одинаковыми. –

+0

Просто незначительная коррекция. Shapefiles использует версию DBASE4, а не версию DBASE3 для файлов .dbf. –

5

ли НЕ редактировать заголовок, данные выровнены по фиксированному смещению, и изменение размера поля к чему-то, что не соответствует физической длине записи ВОЛИ коррумпированной вашему стола.

Для этого вам понадобится что-то, что может читать/писать DBF. Старая установка DBase будет работать, хотя вам будет лучше с Visual FoxPro (команда FoxPro будет MODI STRU, что является сокращением для «MODIFY STRUCTURE»). Я бы также посмотрел на другие инструменты, чтобы выталкивать данные в другие форматы. Если у вас есть доступ к Access (pardon pun), вы всегда можете импортировать данные в Access в качестве таблицы Access, реструктурировать таблицу и затем экспортировать ее, хотя начиная с Access 2007, встроенная поддержка DBF/FoxPro была больше или менее удален, требуя ODBC.Другие (больше времени) меры будут заключаться в следующем:

  • посмотреть на использование Excel (при условии, что данные имеет очень мало строк, более старые версии могут обрабатывать только всего 32k или 64k строк)
  • использовать некоторые Python читать/записи данных (сделать поиск по SO для этой информации)
  • варианта выше в Perl/Ruby/{вставить любимый язык сценариев с библиотекой DBF}
  • использование ODBC + {вставить дешевки базы данных здесь} + {insert cheapo admin tool для База данных cheapo, которая может изменять вкладку le here} + экспорт из {cheapo database}
2

Чтобы изменить размер поля в файле .dbf, я использую OpenOffice. В OpenOfficeSpreadsheet имя .dbf feild будет представлено как «FEILDNAME, C, 200». Чтобы изменить размер от 200 до> 80, вам необходимо заменить имя поля на: «FEILDNAME, C, 80», а затем сохранить файл .dbf.

Смежные вопросы