[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

Re: {newb} Each statements

Mehr, Assaph (Assaph)

9/28/2004 12:30:00 AM


>ven.rb:27:in `encrypt': undefined method `-' for "a":String
(NoMethodError)
> from ven.rb:27:in `map'
> from ven.rb:27:in `encrypt'
> from ven.rb:38
>still
>
>############33here is my code complete its some cipher
>
>def decrypt(data)
> ndata=data.clone
> srand(5000)
> a = ndata.size-1 # control loop
> while a>-1
> temp=ndata[a]
> temp-=rand(10)
> temp= 26-((temp.abs)%26) if temp<0
> temp= temp%26 if temp>-1
> ndata[a]=temp+97
>
> a-=1
>
> end
> return ndata
>
>end
>
>def encrypt(data)
> ndata=data.dup
> a = ndata.size-1
> srand(5000)
> ndata = ndata.split(//).map{ |c| ((c-97)+rand(10))%26
}.join

At this point 'c' is a string: split(//) returns an array of strings.
String does not have a '-' method, so you should first convert to
integer thus:

ndata = ndata.split(//).map{ |c| ((c.to_i-97)+rand(10))%26
}.join

And possibly convert back into chars:

ndata = ndata.split(//).map{ |c| (((c.to_i-97)+rand(10))%26).chr
}.join

>
> #end # this code down here works but its to messy
> # while a>-1
> # ndata[a]=
((ndata[a]-97)+rand(10))%26
> # a-=1
> #end
> return ndata
>end
>it=String.new("abcdefghijklmnop")
>
>print decrypt(encrypt(it))
>###################
>and i get the error above with the new added code. Sorry to be such a
pain.
>Becker
>