Forum: Italian Ruby user group Gsub e sub

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Stefano D. (Guest)
on 2009-02-06 17:06
Ragazzi mi serve un aiuto...non riesco a trovare un errore che mi da
eclipse.La linea di codice in questione è la seguente:

puts "if #{privar1}#{princ}#{verifica.sub(/[']/,'"')}"

e mi da il seguente errore : private method `sub' called for
nil:NilClass (NoMethodError)

Premetto che ho provato a fare valore=verifica.split e anche .join ma mi
cmq degli errori.Cosa posso fare???
Pietro G. (Guest)
on 2009-02-06 17:11
(Received via mailing list)
2009/2/6 Stefano De nigris <removed_email_address@domain.invalid>:
> e mi da il seguente errore : private method `sub' called for
> nil:NilClass (NoMethodError)

vuol dire che verifica vale nil, mentre dovrebbe essere una stringa.
Stefano D. (Guest)
on 2009-02-06 17:24
Pietro G. wrote:

> vuol dire che verifica vale nil, mentre dovrebbe essere una stringa.

Pietro ma la cosa divertente è che la stringa ha il valore che voglio
sostituire.Questo è quello che ho digitato:

ciao < 'ciao'

e questo è il codice:

puts "#{privar1}#{princ}#{privar3.gsub(/[']/,'"')}"

dove privar1 la prima parola,princ è il simbolo di disuguaglianza,e la
terza parola è privar3.
Pietro G. (Guest)
on 2009-02-06 17:33
(Received via mailing list)
2009/2/6 Stefano De nigris <removed_email_address@domain.invalid>:
> dove privar1 la prima parola,princ è il simbolo di disuguaglianza,e la
> terza parola è privar3.

prima era verifica, ora è privar3. qual è il valore di privar3? ruby
dice che questo valore è nil.
Stefano D. (Guest)
on 2009-02-06 17:47
> prima era verifica, ora � privar3. qual � il valore di privar3? ruby
> dice che questo valore � nil.

Il valore di privar3 è quello che ti ho fatto vedere prima:
'ciao'
E' impossibile che è nil in quanto c'è la virgoletta.
Piero B. (Guest)
on 2009-02-06 17:51
(Received via mailing list)
scusa puoi postare il codice?
in particolare la lina dove assegni il valore di privar3?


2009/2/6 Stefano De nigris <removed_email_address@domain.invalid>:
> Ml mailing list
> removed_email_address@domain.invalid
> http://lists.ruby-it.org/mailman/listinfo/ml
>



--
__________________________________________________
Piero B.
My Blog: cookedapple.net
My Books: anobii.com/petecocoon
LinkedIn: http://www.linkedin.com/in/pbozzolo
Linux User #403396

Please consider the environment before you print this email
Stefano D. (Guest)
on 2009-02-06 18:30
Ecco quello che mi hai richiesto piero:
if ciao < 'ciao'        questo è quello che ho digitato

ed a primariga[1] è  associtato ciao,a primariga[2] il simbolo < e a
primariga[3] la parola 'ciao'.

princ=primariga[2]
privar1=primariga[1]
privar3=primariga[3]

if princ =~ /</
puts "if #{privar1}#{princ}#{privar3.gsub(/[']/,'"')}"
end
Piero B. (Guest)
on 2009-02-06 18:50
(Received via mailing list)
> if ciao < 'ciao'        questo è quello che ho digitato
Ok, quind lo prendi dallo stdin, non lo avevo capito
immagino che tu faccia una cosa del tipo

stringa_da_tastiera = STDIN.gets

digiti "if ciao < 'ciao' "
quindi stringa_da_tastiera conterra'
"if ciao < 'ciao' "

e arrivi al punto dove farai un
primariga = stringa_da_tastiera.split(' ')

> ed a primariga[1] è  associtato ciao,a primariga[2] il simbolo < e a
> primariga[3] la parola 'ciao'.

per capirci primariga[0] e' 'if'?
se non lo e' primariga[3] e' valorizzato?

brutalmente esegui attraverso irb ogni istruzione....
e vedi che e'

ciao
PB


--
__________________________________________________
Piero B.
My Blog: cookedapple.net
My Books: anobii.com/petecocoon
LinkedIn: http://www.linkedin.com/in/pbozzolo
Linux User #403396

Please consider the environment before you print this email
Stefano D. (Guest)
on 2009-02-06 18:59
Piero B. wrote:
>> if ciao < 'ciao'        questo � quello che ho digitato
> Ok, quind lo prendi dallo stdin, non lo avevo capito
> immagino che tu faccia una cosa del tipo
>
> stringa_da_tastiera = STDIN.gets
>
> digiti "if ciao < 'ciao' "
> quindi stringa_da_tastiera conterra'
> "if ciao < 'ciao' "
>
> e arrivi al punto dove farai un
> primariga = stringa_da_tastiera.split(' ')
>
>> ed a primariga[1] �  associtato ciao,a primariga[2] il simbolo < e a
>> primariga[3] la parola 'ciao'.
>
> per capirci primariga[0] e' 'if'?
> se non lo e' primariga[3] e' valorizzato?

Si primariga[0] è if se no era semplice

Che vuol dire "brutalmente esegui attraverso irb ogni istruzione....e
vedi che e'"??Non ho capito.
Piero B. (Guest)
on 2009-02-06 19:10
(Received via mailing list)
digita irb sulla shell (o sul prompt di windoz)
e scrivi ogni comando riga per riga e vedi cosa fa ogni singola riga.

'brutalmente' perche' e' un po' poco elegante... ;)

oppure verifica il risultato della split, dovrebbe essere come segue
primariga = stringa_da_tastiera.split(' ')
=> ["if", "ciao", "<", "'ciao'"]



2009/2/6 Stefano De nigris <removed_email_address@domain.invalid>:
>>
>
> Che vuol dire "brutalmente esegui attraverso irb ogni istruzione....e
> vedi che e'"??Non ho capito.
> --
> Posted via http://www.ruby-forum.com/.
> _______________________________________________
> Ml mailing list
> removed_email_address@domain.invalid
> http://lists.ruby-it.org/mailman/listinfo/ml
>



--
__________________________________________________
Piero B.
My Blog: cookedapple.net
My Books: anobii.com/petecocoon
LinkedIn: http://www.linkedin.com/in/pbozzolo
Linux User #403396

Please consider the environment before you print this email
Stefano D. (Guest)
on 2009-02-06 22:18
Piero ho fatto come hai detto tu,cioè eseguire uno per uno e mi escono :
ciao,poi < e infine 'ciao'.

Comunque la cosa che mi fa arrabbiare di più è che con gli altri if non
mi esce questo errore,il codice completo è:

princ=primariga[2]
privar1=primariga[1]
privar3=primariga[3]

if princ =~<>/
 diverso=princ.gsub(/[</,"=").gsub(/[>],"!")
 puts "if #{privar1.gsub(/[']/,'"')}#{diverso}#{privar3.gsub(/['/,'"')}"
elsif princ =~ />/
 puts "if #{privar1.gsub(/[']/,'"')}#{princ}#{privar3.gsub(/[']/,'"')}"
elsif princ =~ />=/
 puts "if #{privar1.gsub(/[']/,'"')}#{princ}#{privar3.gsub(/[']/,'"')}"
elsif princ =~ /<=/
 puts "if #{privar1.gsub(/[']/,'"')}#{princ}#{privar3.gsub(/[']/,'"')}"
elsif princ =~ /=/
 secele=princ.gsub(/[=]/,'==')
 puts"if #{privar1.gsub(/[']/,'"')}#{secele}#{privar3.gsub(/[']/,'"')}"
else princ =~ /</
 puts "if #{privar1}#{princ}#{privar3}"

Non riesco a spiegarmi il motivo del non funzionamento dell'ultimo if.
Antonio C. (Guest)
on 2009-02-06 22:25
(Received via mailing list)
On Fri, Feb 6, 2009 at 3:18 PM, Stefano De nigris
<removed_email_address@domain.invalid>wrote:

> else princ =~ /</


Non ho letto tutto il thread, ma se hai una condizione, hai bisogno di
elsif
non else.

Ciao,
Antonio
--
http://antoniocangiano.com - Zen and the Art of Programming
http://math-blog.com - Mathematics is wonderful!
http://stacktrace.it - Aperiodico di resistenza informatica
Follow me on Twitter: http://twitter.com/acangiano
Currently writing "Ruby on Rails for Microsoft Developers" for Wrox.
Stefano D. (Guest)
on 2009-02-07 11:56
Scusa antonio,ma l'ultimo dovrebbe essere un else????
Stefano D. (Guest)
on 2009-02-07 11:58
Ah comunque hai ragione antonio ora va..pero non capisco questa cosa
dell'elsif.
This topic is locked and can not be replied to.