2014-09-22 30 views
1

我正在尋找各種選項來解析來自文本文件的數據。我們收到來自不同客戶的發票,格式未預定義。基本上我們接收如下所示的具有不同列的表類結構,並且需要從文件中提取數據。如何從文本文件解析信息

現在,我們有一個IExtractor接口與Parse方法,由每個客戶端解析器實現,並根據文件適當類實例化和邏輯硬編碼檢索數據。

由於客戶端的數量在不斷增加,我們正在研究更強大且易於使用的代碼方法來從文本文件中提取信息。

建議使用正則表達式來識別頁眉和頁腳,並使用另一個表達式從每一行中提取信息。如果有人能提出更好的選擇,我將不勝感激。

<addition text>..... 
    Date   Document   Invoice    Deductions  Paid Amount 
    -------------------------------------------------------------------------------------------- 
    21.03.2014 9289    9280     0.00      48,000.00 
    10.01.2013 21389    9402     3.00      4,000.00 
    21.03.2014 9289    9280     0.00      48,000.00 
    10.01.2013 21389    9402     3.00      4,000.00 

    Sum Total 
    Please ....<text> 
+0

如果您只需要數據,爲什麼不使用簡單的CSV文件?對於人類來說閱讀並不是那麼漂亮,但是它沒有「絨毛」的數據。 – gunr2171 2014-09-22 17:04:53

+0

我們收到來自客戶的* .txt文件 – Sunny 2014-09-22 17:07:08

+0

我不清楚你在問什麼。你問你應該告訴你的客戶提供什麼樣的數據格式? XML和JSON通常是交換數據的好格式,儘管它們不是人性化的,所以你需要創建一個程序來爲你生成這些數據。否則CSV或Excel是不錯的選擇。 – mason 2014-09-22 17:08:23

回答

0

如果你有太多的做代碼解決方案 - 即IExtractor .Parse你提到 - 然後我會去的嵌入式腳本語言

然後,您可以編寫每個客戶端的腳本。

我會使用JavaScript作爲語言(它已建立在正則表達式的支持)。我將使用codeplex的jint項目