2010-05-06 72 views
2

場景:我正在開發一個Rails應用程序,它將以上傳的基於文本的文件的形式輸入數據。我需要在導入數據之前解析這些文件。我可以選擇上傳到應用程序的文件類型;這些上傳使用的軟件(Microsoft Access)有幾個關於文件類型的導出選項。什麼是最好的文件格式解析?

雖然它可能不重要,但我想知道是否有一個最有效的解析特定文件類型。我相信這個問題可以被視爲與語言無關。

(雖然XML通常解析,它不是爲這個項目的緣故可行的文件類型。)

+3

這個問題太開放了。你要輸入什麼樣的數據?會CSV工作? YAML會工作嗎? – 2010-05-06 21:46:22

+0

一個足以完成任務的工具,您可以使用現有工具進行解析?提交者有一個工具可以發出?對於人類來說,一個足夠簡單的工具就可以可靠地書寫?細節在這裏很重要......除非我們知道爲什麼XML不合適,否則很難給出一個好的答案。 – dmckee 2010-05-06 21:49:32

+1

文件需要描述的數據的複雜性也意味着很多。也許考慮像CSV或Ini文件格式? – Svend 2010-05-06 21:50:12

回答

2

如果是由Access導出的東西,最簡單的就是CSV;特別是因爲Ruby在standard library中包含CSV解析器。你將不得不做一些工作來確定CSV的方言(它用於分隔符,它是如何處理引號的);我不知道Ruby解析器對於這些問題有多強大,但是您也應該從Microsoft Access獲得一些控制權。

2

你可能想看看JSON。這是一種輕量級的格式,與XML相比,在後臺不需要大型庫的情況下,解析起來非常簡單,乾淨。

它可以表示相同的字符串,數字,assosiative陣列(對象),並列出這樣

+0

如果我沒有弄錯,JSON不是Microsoft Access可以導出的格式。我很抱歉沒有提及要上傳到我的應用程序的文件是Access導出。 – anxiety 2010-05-06 21:57:01

+0

不是你的錯,我應該讀取所​​有的標籤:) – LukeN 2010-05-06 22:24:12

0

我建議正SV的類型(其中Ñ是一些字符),用於數據包括n。這將使文件夾爲split

如果你有更靈活的數據,我會建議JSON。

+0

CSV(或n-SV)很難解析你自己,因爲你必須考慮包括分隔符本身 – JoelFan 2010-05-06 22:10:08

+0

我認爲CSV將是最好的格式在給定條件下使用: 1.上傳到我的應用程序的文件是ms-access輸出 2。我將在ruby中解析 – anxiety 2010-05-06 22:18:44

+0

@anxiety:你應該回顧一下JoelFan提出的條件。如果你有CSV,並且它有一個字符串,它包含'...','blah,foo',...',你將有各種* fun *解析它。如果您接受歐洲號碼,逗號會不時發現。另外還有1,000,000個可讀的數字格式。我的觀點是,「如果數據很複雜,就得到一個CSV引擎」。 – 2010-05-06 22:56:01

0

如果你必須推出自己的解析器,我會建議CSV或某種形式的分隔符分隔格式。

如果你能夠使用其他庫,有很多選項。 JSON看起來相當迷人。

+0

CSV(或n-SV)很難解析你自己,因爲你必須考慮包括分隔符本身 – JoelFan 2010-05-06 21:55:23

+0

很難但可行。這裏是基於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

+0

真的嗎?我認爲可以寫出很簡單的東西,可能不會靈活,但至少可以解決他的問題。 – Robb 2010-05-06 22:59:44

相關問題