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.
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
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, 4:07 pm, Li Chen <chen_...@yahoo.com> wrote:
On Oct 8, 10:09 pm, botp <botp...@gmail.com> 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.
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.