Dear all,

My script tried to read from one original tsv file and distribute into
new multiple tsv files.

Each line of the original file is like this: time_1, signal_1, time_2,
signal_2... time_4096, signal_4096.
I would like to write them into file_1, file_2, ... file_4096
accordingly, and these files contain time_1, signal_1; time_2, signal_2;
... time_4096, signal_4096 separately.

My script did well only if the original file contains ONE line.
If the original file has two or more lines, the error message like
following,

new_split.rb:17: undefined method `+' for nil:NilClass (NoMethodError)

By tracing the output, I found it seemed the script just read ONE line,
since the put results like this :

........(omitted a lots of lines here)
8182
"4.08963252844486E+00"
"-2.3E-03"
8184
"4.09063219413236E+00"
"-3.1E-03"
8186
"4.09163185987611E+00"
"-7E-04"
8188
"4.09263152560423E+00"
"-3.7E-03"
8190
"4.09363119136048E+00"
"3.6E-03"
8192
nil
nil


And my script is like this:

                @a = []
                @itemnum = 4096
                @counter = 0
                @linenum = 10
                File.open("../original_data/test_2lines.tsv").each_line
do |record|  # "^M"
                #File.open("../original_data/one_line.tsv").each_line do
|record|
                @a = record.chomp.split("\t")

                @itemnum.times do |n|

                File.open("#{n}_debug_split"+".tsv" , "w") do |f|
                puts @counter
                puts @a[@counter].inspect + "\n"
                puts @a[@counter+1].inspect + "\n"
                f << @a[@counter] + "\t" + @a[@counter+1] + "\n"
                @counter += 2
                                                           end


                               end

                                                                      end

Thanks a lot for your comments in advance !
Junhui

BTW, at the end of each line in original tsv file, this is a "^M"
appended.
I don't know how it comes and results something or not.
-- 
Posted via http://www.ruby-forum.com/.