Hi all,
I use the following script to write a 2D array. I wonder if there is
improvement for them.
Thanks,
Li
############script##########
data_all=[
(1…10).to_a,
(1…10).to_a,
(1…10).to_a,
(1…10).to_a
]# a 2D array
File.open(‘test3.txt’,‘w’) do |a_f|
data_all.each do |row |
row.each {|e| a_f.print e ; a_f.print “\t”}
a_f.puts
end
end
Li Chen wrote:
Hi all,
I use the following script to write a 2D array. I wonder if there is
improvement for them.
Thanks,
Li
############script##########
data_all=[
(1…10).to_a,
(1…10).to_a,
(1…10).to_a,
(1…10).to_a
]# a 2D array
File.open(‘test3.txt’,‘w’) do |a_f|
data_all.each do |row |
row.each {|e| a_f.print e ; a_f.print “\t”}
a_f.puts
end
end
What you have is good enough.
There are a few things which could be better, for example formatting
(sprintf), and error reporting, also what I would do is to encapsulate
this code into a function so that you can re use it later on.
def array2D_to_file(array2D,file_name)
…
…
end
my 2 cents
Rodrigo B. wrote:
What you have is good enough.
There are a few things which could be better, for example formatting
(sprintf), and error reporting, also what I would do is to encapsulate
this code into a function so that you can re use it later on.
def array2D_to_file(array2D,file_name)
…
…
end
my 2 cents
Unfortunately Excel doesn’t see the formatted outputs correctly, so I
don’t perform the formatting.
Li
On Fri, Oct 9, 2009 at 4:07 AM, Li Chen [email protected] wrote:
I use the following script to write a 2D array. I wonder if there is
improvement for them.
you may want to look at fastercsv.
kind regards -botp
On Oct 8, 4:07 pm, Li Chen [email protected] wrote:
a_f.puts
end
end
I would do something more along the lines of this:
File.open(‘test.txt’, ‘w’) do |file|
data_all.each do |row|
file.puts row.join(“\t”)
end
end
On Oct 8, 10:09 pm, botp [email protected] wrote:
you may want to look at fastercsv.
kind regards -botp
This is tab-separated, but if Excel is the ultimate goal, I guess that
CSV would work. Fortunately, I don’t use Excel, so I don’t know much
along those lines.
#I try to shorten it
File.open(‘test3.txt’,‘w’) do |a_f|
a_f.print data_all.map{|row| row.join("\t")}.join("\n")
end
#but for Excel, csv file is better
File.open(‘test3.csv’,‘w’) do |a_f|
a_f.print data_all.map{|row| row.join(",")}.join("\n")
end
Thairuby TH wrote:
#I try to shorten it
File.open(‘test3.txt’,‘w’) do |a_f|
a_f.print data_all.map{|row| row.join("\t")}.join("\n")
end
#but for Excel, csv file is better
File.open(‘test3.csv’,‘w’) do |a_f|
a_f.print data_all.map{|row| row.join(",")}.join("\n")
end
Thank you very much for the code. But I still like to do the format
after file
is read by Excel.
Li