更改DBF字段大小

时间:2009-03-16 09:43:37

标签: size field dbf esri dbase

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

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

顺便说一下,我尝试过可以编辑字段大小的DBF资源管理器等工具,但是当我在字符/文本字段上更改字段大小时,浮点/数字字段上的数据会被删除:(
DBF Explorer

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

4 个答案:

答案 0 :(得分:5)

执行 NOT 编辑标题,数据按固定偏移对齐,并将字段大小更改为与物理不匹配的内容记录的长度破坏您的表格。

您需要能够读取/写入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 database}

答案 1 :(得分:2)

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

答案 2 :(得分:1)

它的DBASE III(有点)。

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

我不记得是否有工具可以更改fieldsize,但您可以创建一个新表并复制数据。但是the format并不那么难。

答案 3 :(得分:1)

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

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

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