我要讀的是在一個非常令人費解的方式構成的發票ASCII文件,例如:我必須從複雜的ASCII文件中讀取發票數據,您將如何防範未來的變化?
55651108 3090617.10.0806:46:32101639Example Company Construction Company Example Road. 9 9524 Example City
有實際上是另外的東西在裏面,但我不希望任何進一步迷惑你。
我知道如果客戶不能提供更好的結構,我註定要失敗。例如30906是一個增長的迭代數字。 101639是CustomerId。 「示例公司」和「建築公司」之間的空格長度可變「示例公司」字段也可以具有可變長度的空格,但是例如「微軟公司雷德蒙德」。與其他領域一樣。所以沒有明確的方法從後面提取數據。
但這不是問題。我被帶走了。我的問題如下:
如果輸入是有點結構化和明確的,你將如何防範其結構的未來變化。你將如何設計和實現一個讀者。
我正在考慮在我的數據庫中使用簡單的EAV模型,並使用描述輸入,實體名稱和它們的值類型的文本或XML模板。我會根據模板解析發票文件。