Variable expansion

Hello Vincent and others...

I've searched the forums and articles and found one on variable expansion.  Currently I'm having an issue.   I'm working on a FB7 script build 2183 that grabs a path string from a registry variable.  The string contains things like:

$(BDS)\common; C:\Dev\Tools; $(DLCommon)\Library\source

The registry read function appears to get this just fine and I store it into a project variable.  What I'm then trying to do is to check this registry string to see if it contains the items I need.

I have defined some project variables to contain thingslike:

%DLLibrary% = $(DLCommon)\Library\source

So I want to check if %DLLibrary% is in the read registry string.  The problem I'm having is that FinalBuilder seems to be expanding even the $(var) references.  So my registry variable which should contain:

$(BDS)\common; C:\Dev\Tools; $(DLCommon)\Library\source

Actually ends up looking something like:

C:\Program Files x86\embarcadero\RAD studio\9.0\common; C:\DevTools; C:\DLinkCommon\Library\source

In this case I really need to leave the $(var) values completely alone and not have them expanded because on one system $(BDS) points to path A and on another it might point to path B.

I read the article on variable expansion using %!var%.  This works nicely for the %vars% but how in this case do I stop FB from expanding the $(vars)?

The $(vars) are for the most part environment variables and do show up in the variable list.  In this case I'm working with the registry string as a string and I really don't want to expand anything in it.  Is there some way to work with strings when they are stored in %var% and in all cases tell it NOT to expand anything in that %var%?

In my test case above I get expansion even if I so a simple string assignment.  IE if I use the set var action and I do:

%myvar% = $(DLCommon)\Library\source

If I break and watch I see that %myvar% immediately has:

C:\DLinkCommon\Library\source

Hi Mark

By default FinalBuilder does recursive variable expansion. You can disable this by using a ! symbol in front of the name when referencing the variable, e.d

%!myvar%

http://help.finalbuilder.com/variable_evaluation_and_recurs.htm