我现在使用 ESRI shapefile 格式,并且在更改/编辑数据库字段大小时遇到​​一些问题。我创建了一个长度/大小为 200 的字段,现在我希望它的长度/大小仅为 80(空间和其他改进)。

但是我无法再编辑字段大小了:(有人可以指出如何更改字段大小吗?

顺便说一句,我尝试过诸如 DBF Explorer 之类的实用程序,它可以编辑字段大小,但是当我更改字符/文本字段上的字段大小时,浮点/数字字段上的数据会被删除:(
数据库浏览器

附:ESRI 数据库使用 .dbf 扩展名,我认为它是 DBASE III plus 或 DBASE IV 格式

有帮助吗?

解决方案

可以编辑该文件的标头与任何进制编辑器去改变它。

字节10-11:表示记录的lenth(至少显著字节第一)

在字节48的重复结构开始描述字段(各48个字节)。这种结构的字节33表示的长度。

其他提示

不是 编辑标题,数据对齐 固定偏移量, ,并将字段的大小更改为与记录的物理长度不匹配的值 将要 损坏你的桌子。

您需要能够读/写 DBF 的工具才能有效地执行此操作。旧安装的 DBase 也可以工作,尽管使用 Visual FoxPro 会更好(FoxPro 命令是 莫迪斯特鲁 这是“的缩写修改结构”)。我还会查看其他工具来将数据推送/拉取为其他格式。如果您有权访问 Access(请原谅双关语),您始终可以将数据作为 Access 表导入到 Access,重组该表,然后将其导出,尽管从 Access 2007 开始,本机 DBF/FoxPro 支持已经更多或更多少去掉,需要ODBC。其他(更耗时的)措施是:

  • 查看使用 Excel(如果 数据的行数很少,旧版本总共只能处理 32k 或 64k 行)
  • 使用一些 Python 来读/写数据(执行 在 SO 上搜索此信息)
  • Perl/Ruby/{插入最喜欢的带有 DBF 库的脚本语言}中的上述内容的变体
  • 使用 ODBC + {insert cheapo 数据库 here} + {插入 cheapo 管理工具 可以在此处修改表的 cheapo 数据库} + 导出自 {cheapo数据库}

要在我使用OpenOffice .dbf文件编辑该字段的大小。在OpenOfficeSpreadsheet的费尔德名为.dbf名字会被显示为“FEILDNAME,C,200”。若要从200改变大小 - > 80,你将不得不字段名称schange到:“FEILDNAME,C,80”,然后保存.dbf文件

及其DBASE III(排序的)。

DBF文件都包含的元数据(如字段大小和类型)和数据。他们都储存固定的大小。

我不记得是否有工具来改变字段大小,但您可以创建一个新表并复制数据。但格式是并不难。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top