Hi John
Instead of this:
line.each(',') { |this_record|
fields << this_record.chomp(",").strip() # read to the end of the
file into 'fields', split into lines and chomp out the delimiter
mat1[r,c] = fields[r,c] # the rows and
columns in the matrix = rows and columns in fields
c=c+1
n=n+1
if c > 19 then # loops through
each row/column. At the end of each line where c=19, reset loop onto next row
with col = 1
c = 1
end
}
which I think is the problem,
try
fields = eval("[" + line + "]")
this should turn the string into an array which you can iterate over - this comes from the Hal Fulton book so it should work.
HTH
Clive
---- John Nott <JNott@dto.ie> wrote:
···
Hi everyone,
As a complete new comer to Ruby. I have written this little piece of simple code but I have no idea why it only half works. It creates the matrix as I want it to but instead of populating it using the file as pointed to in file path, it fills it up with empty data!?If anyone has any tips on where I may be going wrong I would really really appreciate it! I have remmed the code as best as I can throughout.
print "Importing Planning Sheet: 2004_extrap_Planning_Data\n"
filepath = 'Q:\\TECH2006\\DBA\\02_LU\\Final TAGM 2007 (working)\\TAGM_666_Current_FROM G_DRIVE\\2004\\2004_extrap_Planning_Data.csv' #the file that contains teh data that i would like to put into the matrix
file = File.new(filepath, 'r') # define new file as filepath
mat1 = OtMatrix.new(649,19) # define new omni trans matrix 649 rows, 19 columns
fields = Array.new # define fields as a new array to hold data
r = 1 # matrix row r = first row
n = 0 # n (fields) = 0
c = 1 # matric column 1 = first columnwhile ( !file.eof )
line = file.gets
line.each(',') { |this_record|
fields << this_record.chomp(",").strip() # read to the end of the file into 'fields', split into lines and chomp out the delimiter
mat1[r,c] = fields[r,c] # the rows and columns in the matrix = rows and columns in fields
c=c+1
n=n+1
if c > 19 then # loops through each row/column. At the end of each line where c=19, reset loop onto next row with col = 1
c = 1
end
}
endprint mat1
Thanks very much in advance!
#####################################################################################
This e-mail message has been scanned for Viruses and Content and cleared
by MailMarshal
#####################################################################################