[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

help if else

titi

7/26/2007 2:56:00 PM

if ((( chaine[i+14] == "twincards>false</twincards")||(chaine[i+14]
== "twincards>true</twincards"))|| ( chaine[ i+14]== "twincards
xsi:nil="1"/"))


???

: syntax error, expecting end-of-file


????
--
Posted via http://www.ruby-....

4 Answers

Jano Svitok

7/26/2007 3:09:00 PM

0

On 7/26/07, Tonyrrr Tonyroor <r0nsync@yahoo.fr> wrote:
> if ((( chaine[i+14] == "twincards>false</twincards")||(chaine[i+14]
> == "twincards>true</twincards"))|| ( chaine[ i+14]== "twincards
- xsi:nil="1"/"))
+ xsi:nil=\"1\"/"))

you have to escape quotes with

Ben Bleything

7/26/2007 3:22:00 PM

0

On Thu, Jul 26, 2007, Tonyrrr Tonyroor wrote:
> if ((( chaine[i+14] == "twincards>false</twincards")||(chaine[i+14]
> == "twincards>true</twincards"))|| ( chaine[ i+14]== "twincards
> xsi:nil="1"/"))

You're closing one too many sets of parents after the "true"
conditional. Also, in the third conditional, you need to either escape
the inner quotes or use single quotes:

"twincards xsi:nil=\"1\"/"
'twincards xsi:nil="1"/'

You might want to rewrite it for better legibility, too. A suggestion:

test = chaine[ i + 14 ]
if test == 'twincards>false</twincards' or
test == 'twincards>true</twincards' or
test == 'twincards xsi:nil="1"/'

# do whatever
end

Ben

Bertram Scharpf

7/26/2007 3:35:00 PM

0

Hi,

Am Freitag, 27. Jul 2007, 00:21:31 +0900 schrieb Ben Bleything:
> On Thu, Jul 26, 2007, Tonyrrr Tonyroor wrote:
> > if ((( chaine[i+14] == "twincards>false</twincards")||(chaine[i+14]
> > == "twincards>true</twincards"))|| ( chaine[ i+14]== "twincards
> > xsi:nil="1"/"))
>
> You're closing one too many sets of parents after the "true"
> conditional.
>
> You might want to rewrite it for better legibility, too. A suggestion:
>
> test = chaine[ i + 14 ]
> if test == 'twincards>false</twincards' or
> test == 'twincards>true</twincards' or
> test == 'twincards xsi:nil="1"/'

It's not only legibility, it's enough to calculate c[i+14]
once as the result is every time the same.

Another suggestion:

case chaine[ i+14]
when %r{twincards>(true|false)</twincards},
%q{twincards xsi:nil="1"/} then
...
end

Bertram


--
Bertram Scharpf
Stuttgart, Deutschland/Germany
http://www.bertram-...

Ben Bleything

7/26/2007 3:46:00 PM

0

On Fri, Jul 27, 2007, Bertram Scharpf wrote:
> It's not only legibility, it's enough to calculate c[i+14]
> once as the result is every time the same.

Right! I forgot to mention that :)

> Another suggestion:
>
> case chaine[ i+14]
> when %r{twincards>(true|false)</twincards},
> %q{twincards xsi:nil="1"/} then
> ...
> end

My gut tells me this might be slower, but probably not enough to matter.
And I always forget about %q, that's really the best way to quote
something that has quotes inside it.

Ben