【发布时间】:2013-06-22 08:47:10
【问题描述】:
我是 Ruby 的新手,我想解析 txt 文件(new7.txt) 输入txt文件样本为:
Revision: 37407
Author: imakarov
Date: 21 June 2013 г. 10:23:28
Message:
update specification from Jhon (it was in VTBSOATST-1219)
----
Added : /Analitics/Документы/ЧТЗ/BR-5610/2 Спецификации/BR-5610 Публикация клиентских данных в АБС Бисквит (CifOraSyncOffPers).docx
Deleted : /Analitics/Документы/ЧТЗ/BR-5610/2 Спецификации/BR-5610 Публикация клиентских данных в АБС Бисквит.docx
Revision: 37406
Author: imakarov
Date: 21 June 2013 г. 10:22:16
Message:
delete files
----
Deleted : /Analitics/Документы/ЧТЗ/BR-5610/2 Спецификации/ЧТЗ Принудительное обновление и публикация ФЛ с замечаниями Кочебина С..docx
Deleted : /Analitics/Документы/ЧТЗ/BR-5610/2 Спецификации/ЧТЗ Принудительное обновление и публикация ФЛ-comments.docx
Deleted : /Analitics/Документы/ЧТЗ/BR-5610/2 Спецификации/ЧТЗ Принудительное обновление и публикация ФЛ-comments_Орлов.docx
Deleted : /Analitics/Документы/ЧТЗ/BR-5610/2 Спецификации/ЧТЗ Принудительное обновление и публикация ФЛ.docx
Revision: 37405
Author: dboytsov
Date: 21 June 2013 г. 10:21:17
Message:
add attributes in file
----
Modified : /Analitics/Документы/ЧТЗ/BR-5864 Запрос данных клиента по интернет-анкете КН/Преобразование BR-5864.docx
Modified : /Analitics/Документы/ЧТЗ/BR-5864 Запрос данных клиента по интернет-анкете КН/ЧТЗ BR-5864 Запрос данных клиента по интернет анкете.docx
Stackoverflow 的同事帮我编程:
require 'csv'
data = []
File.foreach("new7.txt") do |line|
line.chomp!
if line =~ /Revision/
data.push [line]
elsif line =~ /Author/
if data.last and not data.last[1]
data.last[1] = line
else
data.push [nil, line]
end
elsif line =~ /Date/
if data.last and not data.last[2]
data.last[2] = line
else
data.push [nil, nil, line]
end
end
end
CSV.open('new1.csv', 'w') do |csv|
data.each do |record|
csv << record
end
end
但现在我有以下情况:
我需要:
我在 .csv 中使用导出 可能是在 .xls 中导出的更好方法?在里面的每一列中导出 .xls 文件是不是很困难? 我在输入文件(new7.txt)中有“修订”“作者”“日期”等词。在输入文件中,它不是一列。我想解析输入文件并按列复制到.xls
【问题讨论】:
-
我不确定您为什么将所有数据都放在一列中。如果您将转换后的数据保存在 CSV 文件中(如脚本所做的那样),Excel 应自动将它们解析为三列。如果有问题,您仍然可以使用
Data->Text to Columns菜单将数据拆分为以,分隔的列。 -
@ArieShaw 谢谢!!!真是帮了我大忙!!!不好意思以前不知道Excel的这个功能
标签: ruby-on-rails ruby parsing csv xls