Re: [問題] 讀 csv 問題
原文恕刪.. 在此先再次感謝 love 大協助處理!!
說聲抱歉的是,一開始竟然對 csv 的特性沒抓準。
確認符號: 單引號(') 雙引號(") 逗號(,)
以下是我直接從 M$ excel 存成 csv 結果之整理:
1. 若為純文字、數字,且其中不包含雙引號、單引號、逗號,
則直接以逗號分隔。
2. 若該格無任何內容,則直接跳過該格,即會出現連續二個逗號。
(這點和 wiki 上不同, wiki 指明,若無內容會以 ,"", 方式存)
3. 若該格內容有雙引號或逗號,則將為該儲存格加上雙引號,
同時用 notepad 檔開啟結果,會發現原本的雙引號會以 2個雙引表示
ex: 12"27"53(excel 顯示) ---> "12""27""53"(csv文本)
4. 若該格內容「開頭」有單引號,excel 存完後開頭之單引都將不見
ex: '12'34'(excel 也無法顯示第一個單引號)
----> 12'34'(csv 文本儲存)
整理上述四點,FSM 狀態大致上長這樣:
CurrentState ch NextState Action
IDLE - First -
--------------------------------------------
First , NOTHING -
First " Quote0 -
First 0 ReadEnd - #end
First else PureText -
---------------------------------------------
PureText , IDLE -
PureText else PureText Output ch
----------------------------------------------
NOTHING - IDLE - (or output NULL)
----------------------------------------------
Quote0 " Quote1 -
Quote0 else Quote0 Output ch
----------------------------------------------
Quote1 " Quote0 Output "
Quote1 , IDLE -
----------------------------------------------
花了一點小時間畫了 FSM ( http://ppt.cc/tsJ6 )
由於沒經驗,畫得也真的有點小亂(也是醜啦)
不知對於這張 FSM 是否有其它建議?
這種方式在效率而言是否會慢許多?
(沒問題的話晚上我再 coding 出來跟大家做分享)
亦或差不了多少?謝謝各位版友不吝指教,再次感謝!!
--
YouLoveMe() ? LetItBe() : LetMeFree();
--
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 編輯: tropical72 來自: 180.177.76.142 (12/20 07:37)
推
12/20 11:56, , 1F
12/20 11:56, 1F
→
12/20 11:56, , 2F
12/20 11:56, 2F
推
12/20 13:04, , 3F
12/20 13:04, 3F
推
12/20 13:22, , 4F
12/20 13:22, 4F
→
12/20 13:22, , 5F
12/20 13:22, 5F
→
12/20 13:40, , 6F
12/20 13:40, 6F
→
12/20 13:41, , 7F
12/20 13:41, 7F
→
12/20 18:11, , 8F
12/20 18:11, 8F
→
12/20 18:16, , 9F
12/20 18:16, 9F
→
12/20 18:16, , 10F
12/20 18:16, 10F
→
12/20 20:16, , 11F
12/20 20:16, 11F
→
12/20 20:54, , 12F
12/20 20:54, 12F
→
12/28 01:31, , 13F
12/28 01:31, 13F
討論串 (同標題文章)