我必须阅读以非常复杂的方式构建的发票 ascii 文件,例如:
55651108 3090617.10.0806:46:32101639Example Company Construction Company Example Road. 9 9524 Example City
里面实际上还有其他东西,但我不想让你进一步混淆。
我知道如果客户不能提供更好的结构,我就完蛋了。例如 30906 是一个不断增长的迭代数字。101639 是客户 ID。“Example Company”和“Construction Company”之间的空格是可变长度的 “Example Company”字段也可以有可变长度的空格,例如“Microsoft Corporation Redmond”。与其他字段相同。所以没有明确的方法可以从后半部分提取数据。
但这不是问题。我被带走了。我的问题如下:
如果输入有点结构化且定义明确,您将如何防范其结构的未来变化。您将如何设计和实现阅读器。
我正在考虑在我的数据库中使用一个简单的 EAV 模型,并使用描述输入、实体名称及其值类型的文本或 xml 模板。我会根据模板解析发票文件。