4

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

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

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

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

4

5 回答 5

6

不要编辑标题,数据按固定偏移量对齐,并且将字段的大小更改为与记录的物理长度不匹配的内容会损坏的表。

你需要一些可以读/写 DBF 的东西来有效地做到这一点。旧的 DBase 安装将可以工作,尽管使用 Visual FoxPro 会更好(FoxPro 命令是MODI STRU,它是“ MODIFY STRUCTURE ”的缩写)。我还会查看其他工具来将数据推/拉成其他格式。如果您有权访问 Access(请原谅双关语),您始终可以将数据作为 Access 表导入 Access,重新构建表,然后将其导出,尽管从 Access 2007 开始,本机 DBF/FoxPro 支持更多或较少删除,需要 ODBC。其他(更耗时)的措施是:

  • 看看使用 Excel(假设数据行数很少,旧版本总共只能处理 32k 或 64k 行)
  • 使用一些 Python 来读取/写入数据(在 SO 上搜索此信息)
  • Perl/Ruby/{插入最喜欢的带有 DBF 库的脚本语言}
  • 使用 ODBC + {在此处插入cheapo 数据库} + {为可在此处修改表的cheapo 数据库插入cheapo 管理工具} + 从 {cheapo 数据库} 导出
于 2009-04-13T05:45:45.003 回答
2

要编辑 .dbf 文件中的字段大小,我使用 OpenOffice。在 OpenOfficeSpreadsheet 中,.dbf 字段名称将显示为“FEILDNAME,C,200”。要将大小从 200 -> 80 更改,您必须将字段名称更改为:“FEILDNAME,C,80”,然后保存 .dbf 文件。

于 2011-04-20T14:28:22.200 回答
1

它的 DBASE III(有点)。

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

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

于 2009-03-16T10:13:37.243 回答
1

您可以编辑文件的标题以使用任何十六进制编辑器进行更改。

字节 10-11:表示记录的长度(最低有效字节在前)

从第 48 个字节开始,描述该字段的重复结构(每个 48 个字节)。该结构的字节 33 表示长度。

于 2009-03-16T10:16:30.277 回答
0

DBF Viewer 2000具有该功能,甚至更好,它可以计算字段的最大长度,而不是调整它们的大小。

它不是免费的,但是当我需要它时,我使用了 30 天试用版。

于 2022-03-02T09:47:06.613 回答