Kinook Software Forum

Kinook Software Forum (https://www.kinook.com/Forum/index.php)
-   [VBP] General Discussion (https://www.kinook.com/Forum/forumdisplay.php?f=2)
-   -   create macro with a fixed size (https://www.kinook.com/Forum/showthread.php?t=3825)

Joe G 10-09-2008 03:11 PM

create macro with a fixed size
 
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

create macros with fixed size
 
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: 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

1 Attachment(s)
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!


All times are GMT -5. The time now is 06:58 AM.


Copyright © 1999-2023 Kinook Software, Inc.