2013-02-13 47 views
0

好吧,我正在給這個鏡頭。有一個巨大的SO問題與我的問題的答案,但沒有解決我的問題。解析Ruby Rake任務中的平面文本文件

我正在創建一個rake任務來解析RoR中的平面文本文件。該文件有一個標題,但沒有任何空格以外的分隔符。所以我打算使用空格作爲分隔符,但它不起作用。下面是示例文本文件:

名稱生日 比爾86年12月25日 約翰·史密斯87年1月1日

如果我使用「」作爲分隔符,比我獲得的第一個條目正確的結果但不是第二個,因爲日期之前有兩個字符串,而不是一個。下面是我如何一直在努力做到這一點:

File.open(file, "r").each do |line| 
    name, birthdate = line.strip.split("") 
    user = User.new(user_name: name, birth_date: birthdate) 
    user.save 
end 

我無法弄清楚如何處理的事實,第一個「場」可能會或可能不會是一個字。最終我寧願要求csv,然後我的問題就不存在了。

在此先感謝。

回答

0

你可能想如果可能的話,但你的兩個例子努力改變格式,你可以做這樣的事情

components = line.split(' ') 
date = components.pop 
name = components.join(' ') 
+0

是您的解決方案將工作的小例子。我實際上正在處理一個有多列的文件。 – 2013-02-14 00:26:54

+0

其他列中是否有空格?如果沒有,你可以使用相同的技術彈出的值。如果其他列有空格,那麼你需要整理輸入格式 – 2013-02-14 00:29:02

+0

這是真的。絕對可行,雖然你的第一個建議是最好的,改變格式! – 2013-02-14 00:37:48