tags:

views:

185

answers:

3

Hi there,

sometimes ABAP drives me crazy with really simple tasks - as incrementing an integer within a loop...

Here's my try:

METHOD test.

  DATA:                 lv_id TYPE integer.

  lv_id = 1.

  LOOP AT x ASSIGNING <y>.
    lv_id = lv_id+1.
  ENDLOOP.

ENDMETHOD.

This gives me a strange error I can hardly translate to english..

+1  A: 

Uh, I got it. It's the f** spaces...

lv_id = lv_id + 1

works...

Ben
...but if there is a more elegant way, I would be interested ;)
Ben
A: 

You mean like

ADD 1 to lv_id.

By the way, when you loop over an internal table, SY-TABIX has the loop counter.

T.

tomdemuyt
Thanks, very helpful!
Ben
+1  A: 

You already answered the question yourself, but to make things a bit clearer:

variable + 1 

is an arithmetic expression - add 1 to the value of the variable.

variable+1

is an offset operation on a character variable. For example, if variable contains ABC, variable+1 is BC.

This can be especially confusing when dealing with NUMCs. For example, with variable = '4711', variable + 1 is evaluated to 4712, whereas variable+1 is '711' (a character sequence). The error you saw occurred because it's not possible to perform the index operation on a non-character-like variable.

vwegert
Thank you for the explaination. I'm sure I don't make this mistake again ;)
Ben