場景:我正在開發一個Rails應用程序,它將以上傳的基於文本的文件的形式輸入數據。我需要在導入數據之前解析這些文件。我可以選擇上傳到應用程序的文件類型;這些上傳使用的軟件(Microsoft Access)有幾個關於文件類型的導出選項。什麼是最好的文件格式解析?
雖然它可能不重要,但我想知道是否有一個最有效的解析特定文件類型。我相信這個問題可以被視爲與語言無關。
(雖然XML通常解析,它不是爲這個項目的緣故可行的文件類型。)
場景:我正在開發一個Rails應用程序,它將以上傳的基於文本的文件的形式輸入數據。我需要在導入數據之前解析這些文件。我可以選擇上傳到應用程序的文件類型;這些上傳使用的軟件(Microsoft Access)有幾個關於文件類型的導出選項。什麼是最好的文件格式解析?
雖然它可能不重要,但我想知道是否有一個最有效的解析特定文件類型。我相信這個問題可以被視爲與語言無關。
(雖然XML通常解析,它不是爲這個項目的緣故可行的文件類型。)
如果是由Access導出的東西,最簡單的就是CSV;特別是因爲Ruby在standard library中包含CSV解析器。你將不得不做一些工作來確定CSV的方言(它用於分隔符,它是如何處理引號的);我不知道Ruby解析器對於這些問題有多強大,但是您也應該從Microsoft Access獲得一些控制權。
我建議正SV的類型(其中Ñ是一些字符),用於數據不包括n。這將使文件夾爲split
。
如果你有更靈活的數據,我會建議JSON。
CSV(或n-SV)很難解析你自己,因爲你必須考慮包括分隔符本身 – JoelFan 2010-05-06 22:10:08
我認爲CSV將是最好的格式在給定條件下使用: 1.上傳到我的應用程序的文件是ms-access輸出 2。我將在ruby中解析 – anxiety 2010-05-06 22:18:44
@anxiety:你應該回顧一下JoelFan提出的條件。如果你有CSV,並且它有一個字符串,它包含'...','blah,foo',...',你將有各種* fun *解析它。如果您接受歐洲號碼,逗號會不時發現。另外還有1,000,000個可讀的數字格式。我的觀點是,「如果數據很複雜,就得到一個CSV引擎」。 – 2010-05-06 22:56:01
如果你必須推出自己的解析器,我會建議CSV或某種形式的分隔符分隔格式。
如果你能夠使用其他庫,有很多選項。 JSON看起來相當迷人。
CSV(或n-SV)很難解析你自己,因爲你必須考慮包括分隔符本身 – JoelFan 2010-05-06 21:55:23
很難但可行。這裏是基於Java的示例:[parseCsv](http://stackoverflow.com/questions/2241915/regarding-java-string-manipulation/2241950#2241950)和[writeCsv](http://stackoverflow.com/questions/477886/JSP生成-Excel的電子表格XLS到下載/ 2154226#2154226)。 – BalusC 2010-05-06 22:14:48
真的嗎?我認爲可以寫出很簡單的東西,可能不會靈活,但至少可以解決他的問題。 – Robb 2010-05-06 22:59:44
這個問題太開放了。你要輸入什麼樣的數據?會CSV工作? YAML會工作嗎? – 2010-05-06 21:46:22
一個足以完成任務的工具,您可以使用現有工具進行解析?提交者有一個工具可以發出?對於人類來說,一個足夠簡單的工具就可以可靠地書寫?細節在這裏很重要......除非我們知道爲什麼XML不合適,否則很難給出一個好的答案。 – dmckee 2010-05-06 21:49:32
文件需要描述的數據的複雜性也意味着很多。也許考慮像CSV或Ini文件格式? – Svend 2010-05-06 21:50:12