PDA

View Full Version : create macro with a fixed size


Joe G
10-09-2008, 03:11 PM
I need to create a macro for a build number with a fixed size of 4 digits: e.g. 0000

my current project macro is:
Macro name: PRODUCT_BUILD_NUMBER
value 0000 (my initial value)

The increment step is:
[%PRODUCT_BUILD_NUMBER%+0001]

the result is: 1 (leading zeroes are suppressed)

When the macro is incremented by 1, I would like the result to be:
0001, 0002, 0003, etc . with leading zeroes intact.

It seems simple, but I cannot find a way to format the value. It always suppresses the leading zeroes.

TIA

kinook
10-09-2008, 03:17 PM
[vbld_PadLeft(CStr(%PRODUCT_BUILD_NUMBER%+1),4,"0")]

Joe G
10-09-2008, 04:40 PM
Thanks for the fast response, however, although the solution seemed to work the first time and created the result I wanted: 0001 , there were two spaces (or nulls) in the macro following the 0001. When I ran the increment step the second time to increment the macro to 0002, I got the following error:

*******************************************
10/9/2008 5:07:04 PM: Building project step 'Increment_macro_number'...
Error expanding macros or script in property MacroValue: <Error at Line 1, Column 23 (Expected ')')
Code: vbld_PadLeft(CStr(0001>

10/9/2008 5:07:04 PM: Step 'Increment_macro_number' failed
***********************************************

When I went back to the Macro "PRODUCT_VERSION_NUMBER" and trimmed the trailing spaces(nulls, blocks?), the increment solution worked and the result was 0002, however, again there were spaces or nulls trailing the 0002.

Is there a way to eliminate or trim the spaces (nulls or blocks)?

TIA

kinook
10-09-2008, 04:54 PM
Perhaps there is a trailing newline character following the script expression?

Joe G
10-10-2008, 02:20 PM
You're right, a newline(two trailing blocks) is being added to the macro and is causing the error, but I can't find where the newline character is being invoked. Is there some way to trim the macro of the newline character after the fact?

Thanks in advance.

kinook
10-10-2008, 02:50 PM
Assuming a temporary macro named PRODUCT_BUILD_NUMBER with the build number in 0000 form and a trailing space, a Run Script step (VBScript) with this code would remove any trailing space(s).

Set m = vbld_TempMacro("PRODUCT_BUILD_NUMBER")
m.Value = Left(m.Value, 4)

The attached sample increments and logs the build number macro from 0001 to 0100 without adding a trailing newline.

Joe G
10-10-2008, 04:23 PM
Thanks, it worked. My old Macro step somehow had a "newline" character embedded within it. When I deleted the entire macro step and created a new one with the macro value:
[vbld_PadLeft(CStr(%PRODUCT_BUILD_NUMBER%+1),4,"0")], the newline character was eliminated and the increment number was correct.

Thanks for the solution!