Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby:如何在xls中解析txt?_Ruby On Rails_Ruby_Parsing_Csv_Xls - Fatal编程技术网

Ruby on rails Ruby:如何在xls中解析txt?

Ruby on rails Ruby:如何在xls中解析txt?,ruby-on-rails,ruby,parsing,csv,xls,Ruby On Rails,Ruby,Parsing,Csv,Xls,我是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 Публика

我是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”
数据=[]
File.foreach(“new7.txt”)do |行|
line.chomp!
如果行=~/Revision/
data.push[行]
elsif行=~/Author/
如果data.last和not data.last[1]
data.last[1]=行
其他的
data.push[零,行]
结束
elsif行=~/Date/
如果data.last和not data.last[2]
data.last[2]=行
其他的
data.push[零,零,行]
结束
结束
结束
CSV.open('new1.CSV','w')do | CSV|
数据。每个do |记录|

csv根据您的区域设置(似乎只有美国不同),Excel应使用分号(;)作为csv分隔符,而不是逗号(,)

发件人:

Microsoft Excel将打开.csv文件,但根据系统的区域设置,它可能希望使用分号作为分隔符,而不是逗号,因为在某些语言中,逗号用作十进制分隔符

您可以使用选项
:col_sep
指定列分隔符。 这应该行得通

CSV.generate('new1.csv', 'w', {col_sep: ";"}) do |csv|
  data.each do |record|
    csv << record
  end
end
CSV.generate('new1.CSV','w',{col_sep:;“})do|CSV|
数据。每个do |记录|

csv我不知道为什么您将所有数据都放在一列中。如果将转换后的数据保存在CSV文件中(如脚本所做),Excel应自动将其解析为三列。如果出现问题,您仍然可以使用
数据
->
文本到列
菜单将数据拆分为以
分隔的列,
@ArieShaw谢谢!!!这是一个真正的帮助我!!!我很惭愧,我以前不知道Excel的这个功能