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.
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:
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.
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
···
On Apr 25, 2007, at 6:05 PM, traktorman@gmail.com wrote:
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.