我要读的是在一个非常令人费解的方式构成的发票ASCII文件,例如:我必须从复杂的ASCII文件中读取发票数据,您将如何防范未来的变化?
55651108 3090617.10.0806:46:32101639Example Company Construction Company Example Road. 9 9524 Example City
有实际上是另外的东西在里面,但我不希望任何进一步迷惑你。
我知道如果客户不能提供更好的结构,我注定要失败。例如30906是一个增长的迭代数字。 101639是CustomerId。 “示例公司”和“建筑公司”之间的空格长度可变“示例公司”字段也可以具有可变长度的空格,但是例如“微软公司雷德蒙德”。与其他领域一样。所以没有明确的方法从后面提取数据。
但这不是问题。我被带走了。我的问题如下:
如果输入是有点结构化和明确的,你将如何防范其结构的未来变化。你将如何设计和实现一个读者。
我正在考虑在我的数据库中使用简单的EAV模型,并使用描述输入,实体名称和它们的值类型的文本或XML模板。我会根据模板解析发票文件。