Grade my test?

J

jabowen

I have directory of data files along with a few other types of files. The
data file names start at 0000 and run to 3999. I have a program that
creates an array for the data files without the non data files. This
program works good but have I created the shortest way of doing the task?
Thanks for grading my test. Jeff

#Puts the contents of the current directory into data_files.
dir_file_list = Dir.entries(".")
data_files = []

dir_file_list.each do|files|
if files.to_i > 0 && files.to_i < 4000
data_files.push files
end
end

puts data_files
 
T

Todd Benson

I have directory of data files along with a few other types of files. The
data file names start at 0000 and run to 3999. I have a program that
creates an array for the data files without the non data files. This
program works good but have I created the shortest way of doing the task?
Thanks for grading my test. Jeff

#Puts the contents of the current directory into data_files.
dir_file_list = Dir.entries(".")
data_files = []

dir_file_list.each do|files|
if files.to_i > 0 && files.to_i < 4000
data_files.push files
end
end

puts data_files

That would work just fine. Here's another one:

data_files = Dir.entries.select { |file| (1...4000).include? file.to_i }

Be aware of how #to_i works, though. This will grab a file named
"24-7Project", for example.

Todd
 
R

Robert Dober

I have directory of data files along with a few other types of files. The
data file names start at 0000 and run to 3999. I have a program that
creates an array for the data files without the non data files. This
program works good but have I created the shortest way of doing the task?
Thanks for grading my test. Jeff

#Puts the contents of the current directory into data_files.
dir_file_list = Dir.entries(".")
data_files = []

dir_file_list.each do|files|
if files.to_i > 0 && files.to_i < 4000
data_files.push files
end
end

puts data_files

Does it really work? What about file "0000' ?
The problem is that "a".to_i --> 0
I would go for

Dir["[0-9]"*4]

or
Dir["[0-3]" + "[0-9]"*3]
if necessary.

HTH
Robert
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,048
Latest member
verona

Latest Threads

Top