1 个不稳定版本
0.1.0 | 2019年9月4日 |
---|
#2110 在 解析器实现
27KB
584 行
dbase-parser
:Rust的dbaseIII/IV/foxpro迭代解析器
此包提供了读取和解析 dbf
文件的能力,同时生成类型化对象。它高效、通用、经过充分测试,最重要的是,得到维护。
背后的动机在此处记录这里。特别是,没有解析器支持memo(M
)类型,更不用说它的两种变体。
关于版本说明的免责声明
由于该包仍在积极开发中,版本可能相对较快地发生变化。在我们达到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版本 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则任何有意提交给工作并由您包括在内的贡献,根据Apache-2.0许可证定义,均应双重许可如上所述,无需任何额外条款或条件。
依赖关系
~1.5MB
~20K SLoC