歡迎光臨
每天分享高質量文章

開源一個CSV解析器(附設計過程 )

在ExcelReport支援csv的開發過程中,需要一個NETStandard的csv解析器。在nuget上找了幾個試用,但都不太適合。

於是,便有了:AxinLib.IO.CSV。

 先看看怎麼用:

讀出的資料:


回到開始:

步驟一、瞭解CSV格式規範

參考文章:理解CSV格式規範(解析CSV必備)

 總結:

1)欄位分隔符:

1
,

2)行結束符:

1
\r\n

3)轉義符:

1
"

4)出現以上字元的欄位需要用轉義符前後括起來

5)轉義符的原義需要兩個轉義符標識

6)檔案中的最後一行記錄可以有結尾回車換行符,也可以沒有。

步驟二、定義狀態

透過主流程識別狀態:

1)新欄位開始
2)非轉義狀態
3)轉義狀態
4)轉義符原義判定狀態
5)欄位結束
6)行結束
7)檔案結束
8)解析失敗

步驟三:透過狀態遷移圖查缺補漏

步驟四:根據狀態遷移圖實現程式碼

 詳參見:

 AxinLib.IO.CSV 原始碼:https://github.com/hanzhaoxin/AxinLib/tree/master/src/AxinLib.IO.CSV

原文地址:https://www.cnblogs.com/hanzhaoxin/p/10508393.html

贊(0)

分享創造快樂