POV-Ray : Newsgroups : povray.general : An string macro that returns the input inverted. : Re: An string macro that returns the input inverted. Server Time
16 Apr 2024 18:42:56 EDT (-0400)
  Re: An string macro that returns the input inverted.  
From: B  Gimeno
Date: 17 Jun 2020 18:40:00
Message: <web.5eea9b323fadb093a723b8610@news.povray.org>
"jr" <cre### [at] gmailcom> wrote:
> hi,
>
> "B. Gimeno" <nomail@nomail> wrote:
> > /* --------------------------------------------------------------------------
> > When a S1 string is entered, it returns a S2 string reordered from the end to
> > the beginning."
> >
> > Usage: [limit: up to a 256 character long string]
> > Inv_String("gninnigeb eht ot dne eht morf deredroer gnirts 2S a snruter ti,
> > deretne si gnirts 1S a nehW")
> >
> > Disclaimer: Use this code only under your own discernment. The author declines
> > all responsibility in the event that tentacular entities of a remote underworld
> > possess the user for trying to decipher "modern" music lyrics by reading it
> > backwards (or forward).
> >
> > --------------------------------------------------------------------------- */
> > #macro Inv_String (S)
> >  #local C = strlen (S) ;
> >  #local I_S = concat ( #for(C,C,0) substr(S,C,1); #end )
> >  I_S
> > #end
> > // ---------------------------------------------------------------------------
>
> which version are you using?  tried with alpha.10064268, but got no output.
> have to use "concat ( #for(J,C,0,-1) substr(S,J,1) #end )" to get it to work;
> with semicolon I get a "Parse Error: Expected 'string expression', ; found".
> still, neat!
>
>
> regards, jr.

Im sorry, it's my fault for going from a while-loop to a for-loop and pretending
leaving it that nice. The first three exorcisms will not be charged to your
monthly subscription account.

ORIGINAL:
#macro Inv_String (S)
 #local C = strlen (S) ;
 #local Inv = concat ( #while(C>0) substr(S,C,1) #local C=C-1; #end )
  Inv
#end

FIXED:
 #macro Inv_String (S)
  #local C = strlen (S) ;
  #local I_S = concat ( #for(C,C,0) substr(S,C,1) #end )
  I_S
 #end


B. Gimeno


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.