"Foreach" ATEasy Equivilant for Enums
High Wycombe, BUKS

Feb 1, 2019
2 Posts

#### "Foreach" ATEasy equivilant for enums

Hi,
I am new to ATEasy and still learning the syntax and its function, etc. I have a question with regards to Enums in ATEasy. Lets say I have an enum which has 10 different values:

eMyEnum:
{
a = 0x103
b = 0x113
c = 0x123
d = 0x133
e = 0x143
f = 0x153
g = 0x163
h = 0x173
i = 0x183
j = 0x193
}

is there a way to have a loop like a "FOREACH" function that would check if an integer "x" has any of the above enum values?

instead of having a lot of "if" statements or a long if statement like:
if (x = eMyEnum.a or x = eMyEnum.b or .........) then

I am asking this as in the future this enum size will increase and i want to have a function that can adapt to it.

Thanks,

DrATEasy (Ron Y.)
Mission Viejo, CA

Feb 1, 2019
288 Posts

#### Re: "Foreach" ATEasy equivilant for enums

There is no 'foreach'. You can use a select statement instead of the if that:

select x
case eMyEnum.a, eMyEnum.b
...
case eMyEnum.c to eMyEnum.f, eMyEnum.j
...
case else
...
endselect

High Wycombe, BUKS

Feb 4, 2019
2 Posts

#### Re: "Foreach" ATEasy equivilant for enums

Hi Ron,

The switch case will still need to be updated by adding and checking the new elements added in the Enum later on. What I was trying to ask was, is there a way to check if the value of 'x' is equal to any of the Enum elements without knowing how many and what are the Enum elements. Like an Array, where you can do:

for i=0 to sizeof(Array) do
if (x = Array[i]) then
.......
endif
next

Maybe using an Enum isn't the correct way to do this. I just wanted to see if ATEasy had a method that deals with Enums in that way.

Thanks,

DrATEasy (Ron Y.)
Mission Viejo, CA

Feb 6, 2019
288 Posts

#### Re: "Foreach" ATEasy equivilant for enums

There is no built-in to check if a value is a member of an enum . However, there are other methods. For example you can add to the description of the enum, retrieve the description using DescOf operator and and search for them (using Pos). Another way, if the values are small numbers, you can create an array of bool to say what values are valid.