Forum: Ruby add a string on the end of values before splitting new line

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Mmcolli00 M. (Guest)
on 2009-03-05 18:49
Hi again. I am starting a new topic since this question is not the same
as my original topic started this morning. "It builds on to that
question."

Originally I was reading a textfile that had values that were comma
delimited. The values were not being outputted to separated lines. Now
that they do that..I was hoping that someone could help me to add a
comment before the line goes into splitting. Thanks everyone for being
so helpful! MC

Question:
Do you know how to add a string on the end of each value before
splitting into a new line? For instance...

textfile contents: value1,value2,value3...

value1 comments
value2 comments
value3 comments

I tried this using Robert's code, however, it put the comments on a
newline.

File.foreach "temp.txt" do |line|
   puts "", line.split(/,/),"comments" + @usercomments
end
Choi, Junegunn (Guest)
on 2009-03-06 13:47
(Received via mailing list)
2009/3/6 Mmcolli00 Mom <removed_email_address@domain.invalid>:
> Question:
> Do you know how to add a string on the end of each value before
> splitting into a new line? For instance...
>
> File.foreach "temp.txt" do |line|
>   puts "", line.split(/,/),"comments" + @usercomments
> end
>

You could use Array#map method.
Raveendran .. (Guest)
on 2009-03-06 14:16
Mmcolli00 Mom wrote:
> Hi again. I am starting a new topic since this question is not the same
> as my original topic started this morning. "It builds on to that
> question."
>
> Originally I was reading a textfile that had values that were comma
> delimited. The values were not being outputted to separated lines. Now
> that they do that..I was hoping that someone could help me to add a
> comment before the line goes into splitting. Thanks everyone for being
> so helpful! MC
>
> Question:
> Do you know how to add a string on the end of each value before
> splitting into a new line? For instance...
>
> textfile contents: value1,value2,value3...
>
> value1 comments
> value2 comments
> value3 comments
>
> I tried this using Robert's code, however, it put the comments on a
> newline.
>
> File.foreach "temp.txt" do |line|
>    puts "", line.split(/,/),"comments" + @usercomments
> end

Hi Mom,

1. Collect all data from file and store it as a single String variable
@a. So @a.class==String

2. Ex, @file="value1,value2,value3,value4"

3. Code

@file="value1,value2,value3,value4"
@output=[]
@file.split(/,/).each do |record|
  @output << record + " comments"
end
puts @output # => It gives => ["value1 comments","value2
comments","value3 comments","value4 comments"]

So use puts @output.join("\n").

It will gives output like:

value1 comments
value2 comments
value3 comments
value4 comments

Regards,
P.Raveendran
http://raveendran.wordpress.com
Jesús Gabriel y Galán (Guest)
on 2009-03-06 14:43
(Received via mailing list)
On Fri, Mar 6, 2009 at 1:17 PM, jazzez ravi 
<removed_email_address@domain.invalid>
wrote:

> 3. Code
>

@file="value1,value2,value3,value4"
# @output=[]
# @file.split(/,/).each do |record|
# @output << record + " comments"
# end

output = @file.split(/,/).map {|record| record + comments}

each + filling an array => map

Jesus.
This topic is locked and can not be replied to.