Jump to content
Macro Express Forums
msibleyj

Load non-sequential values into an array

Recommended Posts

I need to create an array with the following values:

1 0.6
2 1.5
3 2.5
4 3.5
5 4.5
6 5.5
7 6.5
8 7.5
9 8.5
10 9.5
11 10.5
12 11.5
13 12.5
14 13.5
15 14.5
16 16
17 18.5
18 22.5
19 27.5
20 32.5
21 40
22 63.5

So, when I increment through the array, it would return the values. For example %test[3]% = 2.5

How can I load these values into the array without having to manually enter a modify variable for each value?

Mark

 

Share this post


Link to post
Share on other sites

 

Hi Mark,

Hope the screenshot, annotated command text and command code will show you one way of doing it.

I've used commas to separate the nunbers, but any other sensible character would be OK too.

If you were doing this with many different sets of numbers, with varying numbers of elements, then a more flexible approach would be to set up text files first. But the crucial part is the indexing, as illustrated.

 

Variable Set String %tNumbers% to "0.6,1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5,10.5,11.5,12.5,13.5,14.5,16,18.5,22.5,27.5,32.5,40,63.5"
Split String "%tNumbers%" on "," into %tArray22%, starting at 1
// Then continue with your macro. Here I've simply displayed each of the 22 elements in the array.
Repeat Start (Repeat 22 times)
  Text Box Display: Result
End Repeat

 

<VARIABLE SET STRING Option="\x00" Destination="%tNumbers%" Value="0.6,1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5,10.5,11.5,12.5,13.5,14.5,16,18.5,22.5,27.5,32.5,40,63.5" NoEmbeddedVars="FALSE"/>
<SPLIT STRING Source="%tNumbers%" SplitChar="," Dest="%tArray22%" Index="1"/>
<COMMENT Value="Then continue with your macro. Here I've simply displayed each of the 22 elements in the array."/>
<REPEAT START Start="1" Step="1" Count="22" Save="TRUE" Variable="%nCount%"/>
<TEXT BOX DISPLAY Title="Result" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Tahoma;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs16 tArray22[%nCount%] = %tArray22[%nCount%]%\r\n\\par \r\n\\par }\r\n" Left="Center" Top="425" Width="278" Height="258" Monitor="0" OnTop="TRUE" Keep_Focus="TRUE" Mode="\x00" Delay="0"/>
<END REPEAT/>

 

IndexAnArray.jpg

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×