Ruby/C newbie question

Discussion in 'Ruby' started by Dave Sims, Jul 28, 2005.

  1. Dave Sims

    Dave Sims Guest

    I'm trying to set a char at a particular index in a Ruby String in C
    using the rb_funcall method, but since there is no text signature for
    this method call (that I know of), I'm having a hard time with it. Right
    now I'm messing with something like:

    rb_funcall(textString, rb_intern("[]="), 2, index);

    which throws an exception with the message: "`[]=': cannot convert false
    into String (TypeError)"

    Any ideas?

    I just need the C equivalent of "String"[n].

    thanks,
    Dave
    Dave Sims, Jul 28, 2005
    #1
    1. Advertising

  2. Dave Sims <> [2005-07-29 05:02]:
    > I'm trying to set a char at a particular index in a Ruby String in C using the
    > rb_funcall method, but since there is no text signature for this method call
    > (that I know of), I'm having a hard time with it. Right now I'm messing with
    > something like:
    >
    > rb_funcall(textString, rb_intern("[]="), 2, index);


    rb_funcall (s, rb_intern ("[]="), 2, INT2FIX(0), rb_str_new2 ("A"));

    That would change the first character of the String s to "A".

    Regards,
    Tilman

    --
    learn to quote: http://www.netmeister.org/news/learn2quote.html
    Tilman Sauerbeck, Jul 28, 2005
    #2
    1. Advertising

  3. Dave Sims

    Dave Sims Guest

    That would be it. Thanks Tilman.

    Tilman Sauerbeck wrote:

    >Dave Sims <> [2005-07-29 05:02]:
    >
    >
    >>I'm trying to set a char at a particular index in a Ruby String in C using the
    >>rb_funcall method, but since there is no text signature for this method call
    >>(that I know of), I'm having a hard time with it. Right now I'm messing with
    >>something like:
    >>
    >> rb_funcall(textString, rb_intern("[]="), 2, index);
    >>
    >>

    >
    >rb_funcall (s, rb_intern ("[]="), 2, INT2FIX(0), rb_str_new2 ("A"));
    >
    >That would change the first character of the String s to "A".
    >
    >Regards,
    >Tilman
    >
    >
    >
    Dave Sims, Jul 28, 2005
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. anne001
    Replies:
    1
    Views:
    442
  2. Jerry C.
    Replies:
    8
    Views:
    229
    Uri Guttman
    Nov 23, 2003
  3. Kruno Saho
    Replies:
    0
    Views:
    135
    Kruno Saho
    Apr 7, 2013
  4. Dave Angel
    Replies:
    0
    Views:
    118
    Dave Angel
    Apr 7, 2013
  5. rusi
    Replies:
    0
    Views:
    108
Loading...

Share This Page