[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

gsub question

traktorman@gmail.com

4/25/2007 10:04:00 PM

Hello,

i'm new to ruby, and working mostly with text.
i have this very simple program that reads a file and replaces all '\'
with a whitespace. (rtf to txt conversion is causing an endless
occurence of \'s).
the way i do it :

txt = "Messages posted to this group will make your email address
visible to anyone on the Internet. \"
puts txt.gsub('\' , ' ')

produces an error:
test.rb:1: unterminated string meets end of file

i'd like to know what i'm doing wrong, or is there another way of
doing it properly.

thanks
t

4 Answers

Lyle Johnson

4/25/2007 10:17:00 PM

0

On 4/25/07, traktorman@gmail.com <traktorman@gmail.com> wrote:

> the way i do it :
>
> txt = "Messages posted to this group will make your email address
> visible to anyone on the Internet. \"
> puts txt.gsub('\' , ' ')
>
> produces an error:
> test.rb:1: unterminated string meets end of file

Within a double quoted string (like your txt) the backslash character
(\) sets up an escape sequence; so the trailing \" is interpreted as
an embedded quote mark. You need to use two backslashes to get the
effect that you're after, e.g.

txt = "Messages posted to this group... on the Internet. \\"
puts txt.gsub('\\', '')

For more info, see the "Strings" section of this chapter from Programming Ruby:

http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_std...

Hope this helps,

Lyle

Ganesh Gunasegaran

4/25/2007 10:21:00 PM

0

The slash in the txt variable should be escaped

The escaped version is as below

txt = "Messages posted to this group will make your email address
visible to anyone on the Internet. \\"
puts txt.gsub('\\' , ' ')

Of course if you are reading the content directly from a file you
need not escape the slashes explicitly

gg.txt
~~~~
Messages posted to this group will make your email address
visible to anyone on the Internet.
gg.rb
~~~~
string = File.read("gg.csv")
p string.gsub("\\", "")




Cheers,
Ganesh Gunasegaran.

On 26-Apr-07, at 3:35 AM, traktorman@gmail.com wrote:

> Hello,
>
> i'm new to ruby, and working mostly with text.
> i have this very simple program that reads a file and replaces all '\'
> with a whitespace. (rtf to txt conversion is causing an endless
> occurence of \'s).
> the way i do it :
>
> txt = "Messages posted to this group will make your email address
> visible to anyone on the Internet. \"
> puts txt.gsub('\' , ' ')
>
> produces an error:
> test.rb:1: unterminated string meets end of file
>
> i'd like to know what i'm doing wrong, or is there another way of
> doing it properly.
>
> thanks
> t
>
>


Ari Brown

4/25/2007 10:25:00 PM

0

Newbie taking a stab at it.....
On Apr 25, 2007, at 6:05 PM, traktorman@gmail.com wrote:

> Hello,
Hello

> txt = "Messages posted to this group will make your email address
> visible to anyone on the Internet. \"
> puts txt.gsub('\' , ' ')


> produces an error:
> test.rb:1: unterminated string meets end of file
And right it should! You probably already know, but \ is the escape
thing. It basically means 'disregard this next character'. So in
fact, that string never ends. A good text editor with coloring would
show that.

But your gsub method looks right :-)


HTH
---------------------------------------------------------------|
~Ari
"I don't suffer from insanity. I enjoy every minute of it" --1337est
man alive




traktorman@gmail.com

4/26/2007 2:21:00 PM

0

Thanks All,

Q for Ganesh, was your file extended with .csv or is a text handled
better this way.(are comma separated values an array)?

> p string.gsub("\\", "")

i don't quite understand 'p string.gsub'. Better do some reading.

what is the difference between a " and a ' when dealing with text?


Thanks Again
t

> gg.rb
> ~~~~
> string = File.read("gg.csv")
> p string.gsub("\\", "")
>
> Cheers,
> Ganesh Gunasegaran.
>
> On 26-Apr-07, at 3:35 AM, traktor...@gmail.com wrote:
>
>
>
> > Hello,
>
> > i'm new to ruby, and working mostly with text.
> > i have this very simple program that reads a file and replaces all '\'
> > with a whitespace. (rtf to txt conversion is causing an endless
> > occurence of \'s).
> > the way i do it :
>
> > txt = "Messages posted to this group will make your email address
> > visible to anyone on the Internet. \"
> > puts txt.gsub('\' , ' ')
>
> > produces an error:
> > test.rb:1: unterminated string meets end of file
>
> > i'd like to know what i'm doing wrong, or is there another way of
> > doing it properly.
>
> > thanks
> > t- Hide quoted text -
>
> - Show quoted text -