POV-Ray : Newsgroups : povray.newusers : strings in #if-directive Server Time
5 Sep 2024 10:25:57 EDT (-0400)
  strings in #if-directive (Message 1 to 10 of 14)  
Goto Latest 10 Messages Next 4 Messages >>>
From: marabou
Subject: strings in #if-directive
Date: 11 Dec 2001 14:18:25
Message: <3c165c01@news.povray.org>
hello,
how do i handle strings, if i want to create the following:

#macro mymacro(this)
        #if (this = "myvalue")
                ...
        #end
#end

mymacro(myvalue)

any hints? thanks.


Post a reply to this message

From: marabou
Subject: Re: strings in #if-directive
Date: 11 Dec 2001 14:34:53
Message: <3c165fdc@news.povray.org>
marabou wrote:

> 
> hello,
> how do i handle strings, if i want to create the following:
> 
> #macro mymacro(this)
>         #if (this = "myvalue")
>                 ...
>         #end
> #end
> 
> mymacro(myvalue)
> 
or is there anything like strcmp(A,B) in v3.1?


Post a reply to this message

From:
Subject: Re: strings in #if-directive
Date: 11 Dec 2001 14:37:26
Message: <hrnc1usqqc7sv5vo2b4l9h13e7a4kjpqol@4ax.com>
On Tue, 11 Dec 2001 20:20:05 +0100, marabou <not### [at] availableyet> wrote:
> how do i handle strings, if i want to create the following:
> #macro mymacro(this) #if (this = "myvalue") ... #end #end

iirc it is well documented in 3.1
and it works the same in 3.5
check strcmp function

ABX
--
#declare _=function(a,b,x){((a^2)+(b^2))^.5-x}#default {pigment{color rgb 1}}
union{plane{y,-3}plane{-x,-3}finish{reflection 1 ambient 0}}isosurface{ //ABX
function{_(x-2,y,1)|_((x+y)*.7,z,.1)|_((x+y+2)*.7,z,.1)|_(x/2+y*.8+1.5,z,.1)}
contained_by{box{<0,-3,-.1>,<3,0,.1>}}translate z*15finish{ambient 1}}//POV35


Post a reply to this message

From: Warp
Subject: Re: strings in #if-directive
Date: 11 Dec 2001 16:52:45
Message: <3c16802d@news.povray.org>

: check strcmp function

  I agree that it would be really nice if (string1 = string2) would work.
I don't see why we should go the C-way in this thing. Better the C++-way.

-- 
#macro N(D,I)#if(I<6)cylinder{M()#local D[I]=div(D[I],104);M().5,2pigment{
rgb M()}}N(D,(D[I]>99?I:I+1))#end#end#macro M()<mod(D[I],13)-6,mod(div(D[I
],13),8)-3,10>#end blob{N(array[6]{11117333955,
7382340,3358,3900569407,970,4254934330},0)}//                     - Warp -


Post a reply to this message

From: marabou
Subject: Re: strings in #if-directive
Date: 12 Dec 2001 13:58:48
Message: <3c17a8e8@news.povray.org>
Warp wrote:


> : check strcmp function
> 
>   I agree that it would be really nice if (string1 = string2) would work.
> I don't see why we should go the C-way in this thing. Better the C++-way.
> 

strcmp(a,b) is the C-way. (string1 == string2) give problems.
in the manual these functions relatively are hidden, that you have to 
install your own search-engine about it.


Post a reply to this message

From: Warp
Subject: Re: strings in #if-directive
Date: 12 Dec 2001 14:20:57
Message: <3c17ae19@news.povray.org>
marabou <not### [at] availableyet> wrote:
: strcmp(a,b) is the C-way. (string1 == string2) give problems.

  What problems? If I do it the C++-way, there are no problems:

string s1 = "abc";
string s2 = "def";

if(s1 == s2) { ... }
else { ... }

-- 
#macro N(D,I)#if(I<6)cylinder{M()#local D[I]=div(D[I],104);M().5,2pigment{
rgb M()}}N(D,(D[I]>99?I:I+1))#end#end#macro M()<mod(D[I],13)-6,mod(div(D[I
],13),8)-3,10>#end blob{N(array[6]{11117333955,
7382340,3358,3900569407,970,4254934330},0)}//                     - Warp -


Post a reply to this message

From: marabou
Subject: Re: strings in #if-directive
Date: 12 Dec 2001 14:27:01
Message: <3c17af7f@news.povray.org>
Warp wrote:

> marabou <not### [at] availableyet> wrote:
> : strcmp(a,b) is the C-way. (string1 == string2) give problems.
> 
>   What problems? If I do it the C++-way, there are no problems:
> 
> string s1 = "abc";
> string s2 = "def";
> 
> if(s1 == s2) { ... }
> else { ... }
> 
sorry, i missunderstood your post. i thought you meant strcmp(a,b) is 
c++-way.
in my opinion the c-way is better, because coders then have less problems 
with type-casts.


Post a reply to this message

From: Warp
Subject: Re: strings in #if-directive
Date: 12 Dec 2001 15:47:00
Message: <3c17c243@news.povray.org>
marabou <not### [at] availableyet> wrote:
: in my opinion the c-way is better, because coders then have less problems 
: with type-casts.

  The c-way is awful.

-- 
#macro N(D,I)#if(I<6)cylinder{M()#local D[I]=div(D[I],104);M().5,2pigment{
rgb M()}}N(D,(D[I]>99?I:I+1))#end#end#macro M()<mod(D[I],13)-6,mod(div(D[I
],13),8)-3,10>#end blob{N(array[6]{11117333955,
7382340,3358,3900569407,970,4254934330},0)}//                     - Warp -


Post a reply to this message

From: marabou
Subject: Re: strings in #if-directive
Date: 12 Dec 2001 15:52:40
Message: <3c17c398@news.povray.org>
Warp wrote:

>   The c-way is awful.

...but logical. (i think)


Post a reply to this message

From: Warp
Subject: Re: strings in #if-directive
Date: 12 Dec 2001 15:59:33
Message: <3c17c535@news.povray.org>
marabou <not### [at] availableyet> wrote:
:>   The c-way is awful.

: ...but logical. (i think)

  So you would prefer it also this way:

int a=1, b=2;

if(intcmp(a, b) == 0) { ... }

-- 
#macro N(D,I)#if(I<6)cylinder{M()#local D[I]=div(D[I],104);M().5,2pigment{
rgb M()}}N(D,(D[I]>99?I:I+1))#end#end#macro M()<mod(D[I],13)-6,mod(div(D[I
],13),8)-3,10>#end blob{N(array[6]{11117333955,
7382340,3358,3900569407,970,4254934330},0)}//                     - Warp -


Post a reply to this message

Goto Latest 10 Messages Next 4 Messages >>>

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