在excelreport支援csv的開發過程中,需要乙個netstandard的csv解析器。在nuget上找了幾個試用,但都不太適合。
於是,便有了:axinlib.io.csv。
讀出的資料:
步驟一、了解csv格式規範
參考文章:理解csv格式規範(解析csv必備)
總結:1)字段分隔符:
,2)行結束符:
\r\n3)轉義符:
"4)出現以上字元的字段需要用轉義符前後括起來
5)轉義符的原義需要兩個轉義符標識
6)檔案中的最後一行記錄可以有結尾回車換行符,也可以沒有。
步驟二、定義狀態
通過主流程識別狀態:
1)新字段開始
2)非轉義狀態
3)轉義狀態
4)轉義符原義判定狀態
5)字段結束
6)行結束
7)文件結束
8)解析失敗
步驟三:通過狀態遷移圖查缺補漏
步驟四:根據狀態遷移圖實現**
詳參見:
axinlib.io.csv 原始碼:
用C 實現乙個Json解析器(3) 詳細設計
上回我們已經得到了簡單類圖,這次就來細品一下每個類應該長什麼樣,需不需要再增加輔助類。首先來給每個類加入成員 lexer 詞法分析器的任務是把json字串轉換成單詞流,只有乙個方法analyze。token 單詞顯然是乙個值物件,只有value和tokentype兩個唯讀屬性。考慮到值型別的效率比引...
乙個簡單的表示式解析器
package lipeng.stringdemo 乙個簡單的表示式解析器,這個解析器可以計算由數字 運算子和括號組成的表示式的值,並能處理變數,為了處理簡單,本解析器只支援乙個字母的變數,不區分變數字母的大小寫。因此,最多只能儲存26個變數。如果使用者的變數名長度大於乙個字母,則只取第乙個字母當作...
如何寫乙個json語法解析器
最近正在補習編譯原理的相關理論基礎。於是琢磨著寫個簡單的語言解析器。1.python程式設計 ply庫 2.正規表示式1.json裡的字典key必須是字串型,value可以是任意型別 2.json根基點必須是字典或者陣列 3.json支援的值包括 數字 整數或浮點數 字串 在雙引號中 邏輯值 tru...