How do you make a hash key using a wordy string?

Hello everyone.

How do you make a hash key using a string? For instance,

txt file...
1 This is a string 22234343
2 This is another string 434355455
3 This is a different string 34324545

file = File.open("mytext4hash.txt")
file.each_line do |line|
rows = {}
key, val = line.chomp.split("""",4)
rows[key] = val

#this is where I am having issue.
puts rows["1 This is a string"] #need this to point to only "22234343"

end

Thanks in advance. MC

···

--
Posted via http://www.ruby-forum.com/.

Try this:

file = File.open("mytext4hash.txt")
rows = {}
file.each_line do |line|
  /(.+)\s+(\d+)$/ =~ line.chomp
  key = Regexp.last_match(1)
  val = Regexp.last_match(2)
  rows[key] = val
end
puts rows["1 This is a string"] #need this to point to only "22234343"

First, you were initializing "rows" inside the loop, which meant you
only kept the last line parsed! The regular expression does this:

(.+) matches at least one character (defaults to starting at the
beginning) and save it in the first "capture group". The parentheses
do that for you. I then refer to it on the next line; the "1" passed
to last_match.
\s+ matches at least one space.
(\d+)$ matches at least one digit at the end of the line ($) and
saves it as the second capture group.

Make sense?

dean

···

On Wed, Dec 3, 2008 at 8:09 AM, Mmcolli00 Mom <mmc_collins@yahoo.com> wrote:

Hello everyone.

How do you make a hash key using a string? For instance,

txt file...
1 This is a string 22234343
2 This is another string 434355455
3 This is a different string 34324545

file = File.open("mytext4hash.txt")
file.each_line do |line|
rows = {}
key, val = line.chomp.split("""",4)
rows[key] = val

#this is where I am having issue.
puts rows["1 This is a string"] #need this to point to only "22234343"

end

Thanks in advance. MC
--
Posted via http://www.ruby-forum.com/\.

--
Dean Wampler
http://www.objectmentor.com
http://www.polyglotprogramming.com
http://www.aspectprogramming.com
http://aquarium.rubyforge.org
http://www.contract4j.org

Thanks Dean. Makes sense!

···

--
Posted via http://www.ruby-forum.com/.