【问题标题】:Changing DBF field size更改 DBF 字段大小
【发布时间】:2009-03-16 09:43:36
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: size field dbf esri dbase


    【解决方案1】:

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

    您需要可以读/写 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 + {插入便宜的数据库 这里} + {插入cheato管理工具 可以在此处修改表的廉价数据库} + 导出 {便宜的数据库}

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

        • 十六进制编辑器听起来不错,希望它不会破坏已经在里面的数据,我会试试的,谢谢 :D
        • 只是好奇,它破坏了表吗?
        【解决方案4】:

        它的 DBASE III(有点)。

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

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

        【讨论】:

        • 如果我创建一个新表,隐藏但链接到 .shp 文件的 Fid、Shapetype 等信息如何?
        • 只是一个小修正。 Shapefile 对 .dbf 文件使用 DBASE4 而不是 DBASE3 版本
        【解决方案5】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-05-22
          • 2010-10-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-21
          相关资源
          最近更新 更多