2013-02-13 44 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