inok/dbf

用于读取带/不带MEMO字段的DBASE文件(FoxPro)的包

1.0.7 2020-03-15 08:24 UTC

This package is auto-updated.

Last update: 2024-09-08 16:00:38 UTC


README

License License License Scrutinizer Code Quality

描述

此类组(在 Inok\Dbf 命名空间中的 TableRecordsMemo)用于读取带/不带MEMO字段的DBF文件(结构、记录)。

类描述

Table

可以读取以下文件的头信息:FoxBASE、dBASE III、dBASE IV、dBASE 5、dBASE 7(部分)、FoxPro、FoxBASE+、Visual FoxPro 文件结构。

使用
$table = new \Inok\Dbf\Table(/path/to/dbf/file, $charset);

其中 $charset 仅在 dbf 文件中未定义字符集时使用(默认字符集:866

方法
  • $table->getHeaders() - 返回 DBF 文件头信息数组
  • $table->getColumns() - 返回 DBF 文件列信息数组
  • $table->getData() - 返回 DBF 文件主体资源(对于 Inok\Dbf\Records 所必需)
  • $table->error - 如果 DBF 文件头或列中存在错误,则返回布尔值 true
  • $table->error_info - 返回错误描述或 null - 如果没有错误
  • $table->close() - 关闭 DBF 文件(在类销毁时也会关闭)

Records

可以读取以下文件的记录:FoxBASE、dBASE III、dBASE IV、dBASE 5、dBASE 7、FoxPro、FoxBASE+、Visual FoxPro 文件记录。现在实现了列类型

  • C - 字符
  • D - 日期,字符串格式为 'YYYYMMDD'(如果为空,转换为 null)
  • F - 浮点数(如果为空,转换为 null)
  • G - 通用(OLE)
  • L - 逻辑 ('t', 'y', 'д' - 转换为 1,'?' - 转换为 null,其余转换为 0)
  • M - MEMO
  • N - 数字(如果为空,转换为 null)
  • P - 图像
  • T - 日期时间,字符串格式为 'YYYYMMDDHHIISS'(如果为空,转换为 null)
  • I - 整数
  • Y - 货币
  • 0 - NullFlags 作为整数
使用
$records = new \Inok\Dbf\Records($data, $encode, $headers, $columns);
  • $data - Table 类的实例或来自 Inok\Dbf\Table getData() 的 DBF 文件资源
  • $encode - iconv MEMO字符 字段到选定的字符(默认:utf8
  • $headers - DBF 文件头信息数组或 $data 是 Table 类的实例时为 null(默认:null)
  • $columns - DBF 文件列信息数组或 $data 是 Table 类的实例时为 null(默认:null)
方法
  • $record->nextRecord - 从 DBF 文件读取下一个记录(返回记录数组或 false - 如果记录已结束)

Memo

可以读取以下 MEMO 文件格式(头信息和记录):DBT、FPT、SMT

使用
$memo = new \Inok\Dbf\Memo(/path/to/dbf/memo/file);
方法
  • $memo->getHeaders() - 返回 MEMO 文件头信息数组
  • $memo->readMemo($record) - 返回 MEMO $record 位置数组
  • $memo->close() - 关闭 MEMO 文件(在类销毁时也会关闭)

注意

表头数组
  • dbf_file - DBF 文件的路径
  • table - DBF 表的名称,小写
  • version - DBF 文件版本
  • version_name - DBF 文件版本文本描述
  • date - DBF 文件最后更改日期,格式为 d.m.Y(1970-2069 年之间的年份)
  • records - DBF 文件中的记录数
  • record_length - DBF 文件中一条记录的长度(以字节为单位)
  • unfinished_transaction - DBF 文件中未完成事务的标志
  • coded - dBASE IV 数据库编码的标志
  • mdx_flag - 索引 MDX 文件的标志
  • charset - DBF 文件记录的字符集标识符
  • charset_name - DBF文件记录的正常字符集名称
  • memo - 如果 True - DBF文件包含MEMO字段
  • memo_file - 如果DBF文件包含MEMO字段,则MEMO文件的路径
列头数组
  • name - 小写列名
  • type - 列类型(一个字符)
  • length - 列长度
  • decimal - 如果不是 0 - 数字的小数部分
  • mdx_flag - 列上的MDX标志(除 Visual FoxPro 外)
  • auto_increment - 下一个自动增加值(仅适用于 dBASE 7Visual FoxPro
  • system - 列是系统列(仅适用于 Visual FoxPro
  • has_null - 列可以存储空值(仅适用于 Visual FoxPro
  • binary - 仅适用于 CHARMEMO 的列(仅适用于 Visual FoxPro
  • auto_increment_next - 自动增加的下一个值(仅适用于 Visual FoxPro
  • auto_increment_step - 自动增加的步长值(仅适用于 Visual FoxPro
MEMO文件头数组
  • freeblock_position - MEMO文件下一个空闲块的位置
  • block_size - MEMO文件块大小(如果存在)
  • dbf-file - DBF文件名(如果存在)
MEMO记录头数组
  • signature - MEMO记录类型:文本或模板(如果存在)
  • length - MEMO记录的大小(如果存在)
  • text - MEMO记录的文本

许可证

此软件包在 MIT许可证 下发布。