PotterHarry Posted August 19, 2010 Report Share Posted August 19, 2010 Hi there... I am chasing my tail on this one. At run time I am getting the error "Undefined variable or the variable is of the wrong type. %N72% Line 34" The line is Variable set integer %N72% to 0. This is happening in a macro called by the main macro. In order to work out what was happening I created a very simplistic macro with the same structure as the original. In the test macro I can freely add/remove/assign variables and I don't get this error. I have added the lines save variables and restore variables before and after the sub-macro. It still works although more slowly... Okay, In my original problematic macro, I cannot define N72 in the main macro. I double click on Variable Set Integer, Select variables (destination), Add, (type is set to integer) Variable name: N72. I see in bold: A variable name already exists or has invalid characters. So, If I open the list of variables there's a list of a dozen or so existing variables in there, none of which are N72. Why is this happening? Quote Link to comment Share on other sites More sharing options...
Cory Posted August 19, 2010 Report Share Posted August 19, 2010 Hard to tell withouth seening the macros. Can you post them? Quote Link to comment Share on other sites More sharing options...
paul Posted August 20, 2010 Report Share Posted August 20, 2010 The reason you're getting this is, I suspect, that the first reference in your macro to %N72% lies in a command where ME assumes a text variable. Now, MEP comes with some variables predefined, and I suspect you're trying to use the integer ones. Where you are trying to address a non-array variable called %N72%, what MEP predefines for you is an array variable called N with 99 "slots", as in %N[1]% thru %N[99]%. So you should be naming your variable %N[72]%, at which point all should be well. And I'll bet you have a text variable called %N72%, which you can delete. MEP has many problems with variables, and Insight doesn't seem to fix or even recognize any longer. Quote Link to comment Share on other sites More sharing options...
PotterHarry Posted August 21, 2010 Author Report Share Posted August 21, 2010 Thanks Cory and Paul. I have attached a segment of my macro which demonstrates that it fails on line 8, where I am attempting to define the initial value. I get the feeling I have missed something major, here. I had the project up and running almost, and now I'm struggling to define a variable! I abandoned the N variables and tried to use %meaningfulnames% instead, but I still can't get it working. Thanks for your advice. Quote Link to comment Share on other sites More sharing options...
PotterHarry Posted August 21, 2010 Author Report Share Posted August 21, 2010 Attachment... UNDEFINED.mex Quote Link to comment Share on other sites More sharing options...
lemming Posted August 26, 2010 Report Share Posted August 26, 2010 OK, I've looked at your code. I believed you've triggered an obscure bug in MEP. Part of the problem is that you have defined many of your variables twice, e.g. PIXEL and %PIXEL% Delete all the duplicate variables that have %% in them. E.g. delete %PIXEL% However, this doesn't solve the problem right away. You will now need to "redefine" all your variables within the code. Basically, you have to delete any mention of a variable and re-pick it from the Variables box. Do NOT type in the variable name manually. E.g. for line 9, dbl-click to bring up the Variable Set Integer window. In the Destination Variable box, delete the word %PIXEL% completely. Click on the Variables box, select PIXEL and click OK. The word %PIXEL% will appear in the Destination Variable box again. Yeah, I know it looks just the same, but that's how to fix this. You will need to repeat this process on every line which contains those variables. I encountered a similar problem some months ago when I accidentally defined a varible twice. Took me quite a while to find this solution. -Lemming Attachment... Quote Link to comment Share on other sites More sharing options...
PotterHarry Posted August 26, 2010 Author Report Share Posted August 26, 2010 Thanks lemming, Yes I have discovered that it is easier to just disable the line of code, delete all offending variables, and then redefine the variables from scratch. Trying to redefine from within existing code just doesn't work. "Part of the problem is that you have defined many of your variables twice, e.g. PIXEL and %PIXEL%" Ah, I think what is happening here is that at runtime MEP is producing spurious variables. I can check the list of variables and I have not defined them twice, and then run the macro, and some extra ones appear - the ones with the same name but with %%! I think this is what's happening.. I have now successfully got the macros to work. Thanks for all your help. Quote Link to comment Share on other sites More sharing options...
chris Posted August 26, 2010 Report Share Posted August 26, 2010 One other thing to look at is that you have spaces in the variables field. For instance, your destination for your first Variable Set Integer command (on line 9) is " %PIXEL%" (without the quotes). This is what is throwing Macro Express off. I'm making a change to make it more fault tolerant of this particular situation. But, in the meantime, if you make this change, it will work much better (and only create one copy of the variables during a save). Quote Link to comment Share on other sites More sharing options...
PotterHarry Posted August 28, 2010 Author Report Share Posted August 28, 2010 Chris, I examined my macro for the spurious spaces, and was surprised to find many more than perhaps could be attributed to mere carelessness. This is the reason why: The extra copies created during a save appear on the variable list as "SPACE%PIXEL%". Whilst attempting to make the macro work, I had selected some of these self-defined variables from the list and edited out the extra inverted commas, but failed to notice the space still remained after back spacing... So the variable % %PIXEL%% ended up with an extra space in front. This is probably a red herring, but I was doing fine with a large and complex macro, all of which seemed to function fine until I introduced variable save and variable restore before and after each sub-macro. May just be coincidence. I accept fully that it was my failure to read the user guide that was the cause of my problems! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.