2 Replies Latest reply: Dec 6, 2012 2:16 PM by Axel Gustafsson RSS

    For and For each in the same loop

    Axel Gustafsson

      I have problems using a for loop and a for each expression in the same time.

      My data looks something like this:

      Temp:

      LOAD * INLINE[

      Client     DimID     DimPos      RowNo

      A          A1          1               1

      A          A2          2               2

      A          A3          3               3

      B          A1          1               4

      B          B1          2               5

      B          B3          3               6

      C          B1          1               7

      C          B2          2               8

      C          C1          3               9

      ];

       

      I want to create variables of the DimID for each client to each DimPos

       

      The result would look like this for DimPos:

      Dim1A=A1

      Dim1B=A1

      DIM1C=B1

      Dim2A=A2

      Dim2B=B1

      Dim2C=B1

       

      I dont know how many clients there are (the point is that you can add or remove one or more clients).

      I do know that it always going to be 8 dimensions for each client.

       

      I've done this

      Set Clientlist='A','B','C';

       

      FOR a=0 to 9

       

      For Each Client in $(Clientlist)

      Let Dim$(a)ID$(Client) =  Peek('DimId',Peek('DimPos',$(a),'Temp'),'Temp');

       

      NEXT Client

      NEXT a

       

      ...but it gives the wrong result..

       

      Can someone help me out?

        • Re: For and For each in the same loop
          mayilvahanan ramasamy

          HI

           

          FOR each Client in $(Clientlist)

          FOR a=0 to 9

           

          For Each Client in $(Clientlist)

          Let Dim$(a)ID$(Client) =  Peek('DimId',Peek('DimPos',$(a),'Temp'),'Temp');

           

          NEXT a

          NEXT Client

           

          First close the inner loop and then outer loop

          • Re: For and For each in the same loop
            Axel Gustafsson

            Sorry, my bad.. I've corrected it.

            Thanks Mayil, but that will give a result of all 9 DimId on all clients.

             

            I want to add 1 to $(a) at the same time the client changes.. When the loop is finished with the first client

            a=1,2,3

            after this the client switches, and at the same time I want the $(a) to restart with DimPos =1 then 2 then 3. (But the Peek function takes RowNo...)

            Can I use the Step function after the for statement? Something like this:

            For a=1 to 3 step 3

             

            Can I use a i IF statement to get the right result?

             

            /AG