.gsub( /\n/, "\n\r" ) not working in WebDialog
-
Strange thing I don't grasp:
htmlCode = %{ <html> test </html>} win = UI::WebDialog.new( "" ) win.set_html( htmlCode.gsub(/\n/,"\n\r") ) win.show p htmlCode[7]
When I right-click the WebDialog on Windows 7 selecting "View source", notepad opens and shows no new-lines or carriage-returns, so everything is on 1 line like this:
<html> test</html>
Although selecting this and copy/paste it here or in notepad++ does show new-lines and carriage-returns like:
%(#0000FF)[<html>
test
</html>]It is solved when I add a \n after each line in %{...}
although the Ruby Console is showing a 10, telling me there is alreeady a newline, \n
So why doesn't .gsub(/\n/,"\n\r") work?!Another test shows .gsub(/\n/,"\n\r") is working, only not in the WebDialog !!!
"<html>\ntest</html>".gsub(/\n/,"\n\r")[7] 13
while this still shows 1 line in Notepad with "View source"
win = UI::WebDialog.new( "" ) win.set_html( "<html>\ntest</html>".gsub(/\n/,"\n\r") ) win.show
-
gsub
creates a NEW string. It does not change the source string.use
gsub!
instead, like:htmlCode = %{ <html> test </html>} win = UI;;WebDialog.new( "" ) htmlCode.gsub!(/\n/,"\n\r") win.set_html( htmlCode ) win.show p htmlCode[7]
htmlCode.gsub!(/\n/,"\n\r")
is the similar to:
htmlCode = htmlCode.gsub(/\n/,"\n\r")
... except that immediate methods (names ending with**!**
,) returnnil
if no changes are made,... so do not use them in an assignment expression. -
Another thing, in HTML use a
%(#8000BF)[<BR>]
tag to cause a linebreak, not "\n". -
@dan rathbun said:
... except that immediate methods (names ending with
**!**
,) returnnil
if no changes are made,... so do not use them in an assignment expression.This is such an annoying behaviour of Ruby. Source of so many creeping bugs.
-
Enclosing <p> tags in html should recognize new lines in the html's text, and reflect that in what is displayed.
Or as Dan says add <br> to force a new line in what is displayed...
A \n will not work within html like you expected...Incidentally, do you have your rb files' encoding set to 'UTF-8 without BOM' ?
You ought to...
Notepad++ has easy options to re-encode existing ANSI files... and you can set the exe's options to make all new text files 'UTF-8 without BOM' anyway... -
Thank you all.
However gsub! isn't the solution, still shows everything on one line in notepad!
I know <br> is the new-line in html, but I'd like to give out a html that also has new-lines using "View source" in notepad. Makes it more readableBut I've found the problem so it is solved
It's stupid but I should have used.gsub(/\n/,"**\r\n**")
not.gsub(/\n/,"**\n\r**")
-
Yea, Notepad is fuzzy about new lines.
-
So this time it's not SU Ruby but MS-Windows
-
@onidarbe said:
So this time it's not SU Ruby but MS-Windows
NotePad sucks.
To set View Source to Notepad++ run the reg file for your Windows bitsize:
(choose 32bit or 64bit Windows)If you installed Notepad++ to a custom location, you will need to edit the regfile !
-
Thanks Dan!
But in this case I want for those maybe using my stuff to make it readable in notepad to
Advertisement