Code: Alles auswählen.
TYPES: BEGIN OF t_pruef,
feld1 TYPE irgendwas,
feld2 TYPE irgendwas,
feld3 TYPE irgendwas,
feld4 TYPE irgendwas,
feld5 TYPE irgendwas,
feld6 TYPE irgendwas,
feld7 TYPE irgendwas,
END OF t_pruef.
DATA wa_erg TYPE t_pruef.
wa_erg = '0101000'.
DATA lf_counter TYPE i VALUE '1'.
DATA lf_potenz TYPE i.
DATA lf_ergebnis TYPE i.
DATA lf_rest TYPE i.
FIELD-SYMBOLS: <test> TYPE t_pruef,
<field> TYPE any.
ASSIGN wa_erg TO <test>.
*--------------------------------------------------------------------*
* Codieren
*--------------------------------------------------------------------*
DO 7 TIMES.
ASSIGN COMPONENT lf_counter OF STRUCTURE <test> TO <field>.
lf_ergebnis = lf_ergebnis + ( <field> * ( 2 ** lf_potenz ) ).
ADD 1 TO lf_potenz.
ADD 1 TO lf_counter.
ENDDO.
Folgende Benutzer bedankten sich beim Autor jensschladitz für den Beitrag:
Barney
Folgende Benutzer bedankten sich beim Autor MrBojangles für den Beitrag:
Barney
MrBojangles hat geschrieben:Hallo,
lass doch einfach den Zusatz 7 Times weg und frag nach dem ASSIGN den SY-SUBRC ab. Wenn die Felder "aus" sind, gibt's nen RC <> 0, dann mit EXIT raus. Kleiner Tipp noch dazu. Statt eines eigenen Zählers kannst Du auch die System-Variable SY-INDEX verwenden, die wird autom. bei jedem Schleifendurchlauf um 1 inkrementiert.
EDIT: (wieder mal) zu spät