2013-03-14 70 views
1

我使用Ruby 1.9.3,有兩個問題:將管道分隔文件轉換爲散列?

(1)如何轉換具有由管分離成一個哈希?:

name | student-id | maths | english | science | grade | remarks | 
abc | 10001  | 90 | 80  | 80  | A+ | excellent | 
. 
. 
. 

多個數據字段的文本文件( 2)此外,如果我有一個新的列這是另一種散列:

name | student-id | maths | english | science | grade | remarks | options  | 
abc | 10001  | 90 | 80  | 80  | A+ | excellent | <condition> | 
. 
. 
. 

在哪裏,| Options |是另一散列:

| Stream  | Average | 
| Com Science | 90  | 
| Elec Eng | 85  | 
| Mech Eng | 80  | 
. 
. 
. 

我想根據他們的平均分數列出所有符合所有不同流的學生。

+0

什麼是關鍵和價值? – Flauwekeul 2013-03-14 15:37:30

+0

@ newruby:使用四個空格縮進問題的代碼部分。 – 2013-03-14 15:39:19

+0

所以,基本上,你有自己的管道分隔表的領域?這意味着主表中的每一行可以在「選項」子表中有多行? – 2013-03-14 15:42:25

回答

2

首先,使用Ruby的內置CSV類。指定:col_sep值爲'|'以覆蓋默認值','CSV.newCSV.open都允許您指定該選項。

+0

感謝您指出我正確的方向,我能夠使用「smarter_csv」寶石,並做我需要的東西。 – newruby 2013-03-19 15:55:25

相關問題