separate a string of values into an array - noob

M

Mmcolli00 Mom

Hi. I am don't understand how to separate my string of filenames into an
array. For example, arrayDiscrep[0] outputs the whole array when I need
it to only output the first element at index 0 which would be filename:
234234. Do you know how I can separate each filename for the array?
Thanks MC

I have this directory of filenames.
234234.EXE 234234.EXE 234545.EXE 34543435.EXE 234563.EXE 24324345.EXE...

Dir["C:/DiscrepancyFiles/*EXE"].each do |disFile|
stringDisFile = File.basename(disFile).gsub("EXE,"")

arrayDiscrep = Array.new
arrayDiscrep = stringDisFile.to_a
puts arrayDiscrep[0]
end
 
S

Siep Korteling

Mmcolli00 said:
Hi. I am don't understand how to separate my string of filenames into an
array. For example, arrayDiscrep[0] outputs the whole array when I need
it to only output the first element at index 0 which would be filename:
234234. Do you know how I can separate each filename for the array?
Thanks MC

I have this directory of filenames.
234234.EXE 234234.EXE 234545.EXE 34543435.EXE 234563.EXE 24324345.EXE...

Dir["C:/DiscrepancyFiles/*EXE"].each do |disFile|
stringDisFile = File.basename(disFile).gsub("EXE,"")

arrayDiscrep = Array.new
arrayDiscrep = stringDisFile.to_a
puts arrayDiscrep[0]
end

Everything between the "each"and "end" is a loop, so you are making a
new array for each file.

File.basename has a nice feature; if you specify a suffix it is removed.

ar = Dir["C:/DiscrepancyFiles/*EXE"].map do |dis_file|
File.basename(dis_file, ".exe")
end
puts ar[0]

hth,

Siep
 
M

Mmcolli00 Mom

Siep
ar = Dir["C:/DiscrepancyFiles/*EXE"].map do |dis_file|
File.basename(dis_file, ".exe")
end
puts ar[0]

hth,

Siep


What if it weren't coming from a directory could you still you .map?
-Misty
 
J

Jonathan Rochkind

Mmcolli00 said:
What if it weren't coming from a directory could you still you .map?
-Misty

The way to do this depends on what the input is, if not a directory?

I don't know how you'd get this input, but let's say you have a string:

input = "234234.EXE 234234.EXE 234545.EXE 34543435.EXE 234563.EXE
24324345.EXE"

tokens = input.split(' ')
first_token = tokens.first
remove_suffix = first_token.split('.').first

# Or all in one line if you like:

input.split(' ').first.split('.').first


There are a variety of other ways to do 'this', but what 'this' is
depends on, well, what you're doing.
 

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,770
Messages
2,569,584
Members
45,075
Latest member
MakersCBDBloodSupport

Latest Threads

Top