[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

take text from file and add do it with Ruby..?

Zoe Phoenix

5/6/2008 8:34:00 AM

I have a text file that I want to add some content to, but I'm not sure
how to use the file as input. I have a list of things in the file that
is formatted like


item1 | item2 | item3 | item4 |

and etcetera... How can I take these items and put each of them on a new
line, minus the "|" and add a certain phrase afterward? Like:

item1 [phrase]
item2 [phrase]
item3 [phrase]

Is there a simple way to do this? I've taken lists of things like this
before and added text to it, but I put all of the items in an array
manually first... would someone show me a faster way, please?
--
Posted via http://www.ruby-....

5 Answers

Sandro Paganotti

5/6/2008 9:19:00 AM

0

Try this:

ph_hashes = Hash.new("no phrase").merge({
:item1 => "phrase 1",
:item2 => "phrase 2",
:item3 => "phrase 3"
})

File.open("yourfile_o.txt","w") do |file|
file.write File.open("yourfile.txt").readlines.join("\n").gsub(/([^\|]+)\|/){
"#{(v=$1.strip) + " " + ph_hashes[v.to_sym]}\n"}
end

On Tue, May 6, 2008 at 8:34 AM, Zoe Phoenix <dark_sgtphoenix@hotmail.com> wrote:
> I have a text file that I want to add some content to, but I'm not sure
> how to use the file as input. I have a list of things in the file that
> is formatted like
>
>
> item1 | item2 | item3 | item4 |
>
> and etcetera... How can I take these items and put each of them on a new
> line, minus the "|" and add a certain phrase afterward? Like:
>
> item1 [phrase]
> item2 [phrase]
> item3 [phrase]
>
> Is there a simple way to do this? I've taken lists of things like this
> before and added text to it, but I put all of the items in an array
> manually first... would someone show me a faster way, please?
> --
> Posted via http://www.ruby-....
>
>



--
Go outside! The graphics are amazing!

Raveendran Jazzez

5/6/2008 9:20:00 AM

0

Zoe Phoenix wrote:
> I have a text file that I want to add some content to, but I'm not sure
> how to use the file as input. I have a list of things in the file that
> is formatted like
>
>
> item1 | item2 | item3 | item4 |
>
> and etcetera... How can I take these items and put each of them on a new
> line, minus the "|" and add a certain phrase afterward? Like:
>
> item1 [phrase]
> item2 [phrase]
> item3 [phrase]
>
> Is there a simple way to do this? I've taken lists of things like this
> before and added text to it, but I put all of the items in an array
> manually first... would someone show me a faster way, please?

Hi Zoe,
Ruby program
**********

full= File.open("orig.txt")
phrase=["phrase1","phrase2","phrase3"]
count=0
full.each do |line|
first=[]
first=line.split(/\|/)
first.each do |single|
sub=single.strip!
main = (sub).to_s + (phrase [count]).to_s
puts main
count+=1
end
end

***********************************
Orig.txt
******

item1 | item2 | item3 | item4 |
item11 | item21 | item31 | item41 |
item12 | item23 | item34 | item45 |
item13 | item23 | item33 | item43 |
item14 | item24 | item34 | item44 |
***********************************
Output
******

>ruby file.rb
item1phrase1
item2phrase2
item3phrase3
item4

item11
item21
item31
item41

item12
item23
item34
item45

item13
item23
item33
item43

item14
item24
item34
item44
>Exit code: 0
*********************************

I dont know this one is very simple but it satisfies ur need


Regards,
P.Raveendran
RailsFactory
http://raveendran.wor...
--
Posted via http://www.ruby-....

Zoe Phoenix

5/6/2008 10:03:00 AM

0

> Hi Zoe,
> Ruby program
> **********
>
> full= File.open("orig.txt")
> phrase=["phrase1","phrase2","phrase3"]
> count=0
> full.each do |line|
> first=[]
> first=line.split(/\|/)
> first.each do |single|
> sub=single.strip!
> main = (sub).to_s + (phrase [count]).to_s
> puts main
> count+=1
> end
> end




how can I save the output to a file? I see where you're making it print
the output with "main", but when I try to save it to a file the way I
have with other programs I've made, I get an error... it says the
variable "main" is undefined. Help?
--
Posted via http://www.ruby-....

Raveendran Jazzez

5/6/2008 10:51:00 AM

0


Try this one.....

full= File.open("orig.txt")
phrase=["phrase1","phrase2","phrase3"]
count=0
inside=[]
full.each do |line|
first=[]
first=line.split(/\|/)
first.each do |single|
sub=single.strip!
main = (sub).to_s + " "+(phrase [count]).to_s

inside << main

newfile=File.new("orig2","w")
newfile.puts inside
newfile.close

count+=1
end
end


Regards,
P.Raveendran
RailsFactory
http://raveendran.wor...
--
Posted via http://www.ruby-....

Zoe Phoenix

5/6/2008 11:44:00 AM

0

ahh, I see... thank you :)
--
Posted via http://www.ruby-....