#parser #streaming-parser #dbase #dbf #memo #rows #open

dbase_parser

一个快速、高效的dbase DBF/DBT/FPT解析器

1 个不稳定版本

0.1.0 2019年9月4日

#2110解析器实现

MIT/Apache

27KB
584

dbase-parser:Rust的dbaseIII/IV/foxpro迭代解析器

此包提供了读取和解析 dbf 文件的能力,同时生成类型化对象。它高效、通用、经过充分测试,最重要的是,得到维护。

背后的动机在此处记录这里。特别是,没有解析器支持memo(M)类型,更不用说它的两种变体。

Build Status Coverage Status

关于版本说明的免责声明

由于该包仍在积极开发中,版本可能相对较快地发生变化。在我们达到1.x之前,请将公共API视为不稳定。

特别是,FieldValue 枚举可能会随着不同DBF文件格式的出现而增加更多类型。

安装

dbase_parser 添加到您的依赖中。

用法

打开文件和流式传输行是一组简单的操作,如下所示

extern crate dbase_parser;
use dbase_parser::{FieldValue, open};

let dbase_file = open("data.dbf");
let amount:f64 = dbase_file
  .map(|db| {
    db.into_iter().fold(0.0, |current, record| {
      record.get("amount").map(|value| match value {
        FieldValue::Numeric(value) => value.clone(),
        _ => 0.0
      }).unwrap_or(0.0)

  })
}).unwrap_or(0.0);

更多选项和类型在底层可用,并通过文档公开。

错误

如果您发现了错误或问题,请毫不犹豫地提交问题。如果您正在解析文件,请务必将其附加到您的问题中;如果需要,请匿名化数据。

许可证

许可协议为以下之一

任选其一。

贡献

除非您明确声明,否则任何有意提交给工作并由您包括在内的贡献,根据Apache-2.0许可证定义,均应双重许可如上所述,无需任何额外条款或条件。

依赖关系

~1.5MB
~20K SLoC