Michael W. Ryder
7/31/2007 8:30:00 AM
Robert Klemme wrote:
> 2007/7/31, Michael W. Ryder <_mwryder@worldnet.att.net>:
>> Alex Young wrote:
>>> Michael W. Ryder wrote:
>>>> I am trying to create a method that would allow one to skip x number
>>>> of a character then change the next y number of a character. While
>>>> trying to create a simple routine I ran into two "weird" problems.
>>>> The code follows:
>>>>
>>>> a = "1 2 1 3 1 4 1 5 1 6 1 7"
>>>> ns = 2, nc = 2
>>>>
>>>> i = 0, il = a.length, xs = 0, xc = 0
>>>> while xs < ns
>>>> if a[i, 1] == "1"
>>>> xs += 1
>>>> end
>>>> i += 1
>>>> end
>>>>
>>>> puts a[i, -1]
>>>>
>>>> In this incarnation trying to run the code returns the following
>>>> error: testing.rb:5:in `<': comparison of Fixnum with Array failed
>>>> (ArgumentError). If I change ns in the while statement to 2 I get the
>>>> following error: testing.rb:6:in `[]': can't convert Array into
>>>> Integer (TypeError).
>>>>
>>>> I can't see why statement 5 (the while statement) thinks that ns is an
>>>> array when it is clearly defined as an integer.
>>> It's not, though - run just this line, and check the values of ns and nc:
>>>
>>> ns = 2, nc = 2
>>>
>>> I think you want:
>>>
>>> ns, nc = [2,2]
>>>
>> Or ns =2; nc =2. I knew it had to be something simple. Thats the
>> problem with programming in multiple languages at the same time, they
>> each do the same things slightly differently. Thanks for pointing that out.
>
> These are options, too:
>
> ns, nc = 2, 2
Maybe this is where I got confused. I remember seeing commas between
variables, just forgot the way they had to be entered. Thanks for
pointing this out.
> ns = nc = 2
>
> Kind regards
>
> robert
>