Cory Posted March 31, 2010 Report Share Posted March 31, 2010 I have a simple macro with the single command "Clear Variables" and a single array variable with a million elements. It takes 18 seconds to run. So if you have large arrays beware that this command can effect performance. I don’t usually use this command but in this case I wanted to run the macro again in order to check for any new file arrivals since execution. You see the activation is Dir Mod so if a new file arrived while processing the current file it would not reactivate. Also one cannot use Macro Run to re-execute the selfsame macro. But I wanted to ensure all my variables were clean for the rerun. I guess I'll have to go thru variable by variable and decide which really need to be cleared and in the case of the array only clear the range that are used. In any case there's no question here, just wanted to let people know about it. Quote Link to comment Share on other sites More sharing options...
paul Posted April 1, 2010 Report Share Posted April 1, 2010 Also one cannot use Macro Run to re-execute the selfsame macro. Well, that's what the documentation claims. But it ain't so! Try this: Variable Modify Integer %n[1]%: Increment If Variable %n[1]% Is Greater Than "3" Macro Return End If Text Box Display: Macro Run: TestRecursive Text Box Display: <VARIABLE MODIFY INTEGER Option="\x07" Destination="%n[1]%"/> <IF VARIABLE Variable="%n[1]%" Condition="\x03" Value="3" IgnoreCase="FALSE"/> <MACRO RETURN/> <END IF/> <TEXT BOX DISPLAY Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang3081{\\fonttbl{\\f0\\fnil\\fcharset0 Tahoma;}{\\f1\\fnil Tahoma;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs16 Starting Recursive macro %n[1]%\\f1 \r\n\\par }\r\n" Left="Center" Top="Center" Width="278" Height="200" Monitor="2" OnTop="FALSE" Keep_Focus="TRUE" Mode="\x00" Delay="0"/> <MACRO RUN Use_ID="FALSE" Name="TestRecursive" ID="-1" Wait="TRUE"/> <TEXT BOX DISPLAY Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang3081{\\fonttbl{\\f0\\fnil\\fcharset0 Tahoma;}{\\f1\\fnil Tahoma;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs16 Ending Recursive macro %n[1]%\\f1 \r\n\\par }\r\n" Left="Center" Top="Center" Width="278" Height="200" Monitor="2" OnTop="FALSE" Keep_Focus="TRUE" Mode="\x00" Delay="0"/> I get this result: Starting Recursive macro 1 Starting Recursive macro 2 Starting Recursive macro 3 Ending Recursive macro 4 Ending Recursive macro 4 Ending Recursive macro 4 which is correct if recursion is allowed. Quote Link to comment Share on other sites More sharing options...
Cory Posted April 1, 2010 Author Report Share Posted April 1, 2010 That's interesting. I created a test macro very similar to that. Except all it did was increment and display. What I found was that when run from F9 it would run twice and mysteriously that's all. Run from the Macro Explorer it would run only once. I wonder why your results are different. 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.