Anmelden

View Full Version : Inhalt einer Variable als Variable



Endymion
12-11-08, 07:50
Hi Leute,

ich würde gern den Inhalt einer Variable als Variable ansprechen :)

Dqqfeld s 10 inz('plnd')
plnd ist in meiner Bildschirmdefinition deklariert als char(10).

Der Inhalt des feldes QQFELD hat den Wert des Namens der Variable "plnd".
Kann ich jetzt irgendwie dem Inhalt der Variable QQFELD einen wert zuweisen?

Ich hoffe ihr versteht mein Problem.
Die Erläuterung, wofür ich das benötige, erspar ich euch mal ;)

Fuerchau
12-11-08, 07:54
Das ist in RPG so nicht möglich.
Hier hilft nur etwas Arbeit:

select;
when qqfeld='pInd';
pInd = 'Wert';
when qqfeld='abc';
abc='Wert2';
:
:
endsl;

Das Thema hatten wir hier schon in ähnlicher Form.

Endymion
12-11-08, 07:59
Danke für die rasche Antwort!

Thema könnte man wieder closen :)

BenderD
12-11-08, 09:30
gehen tut viel, nicht gehen manches
geht nicht: Programmvariable dynamisch mit Name ansprechen
geht: Code generieren, dass das eben doch geht!
geht ab V6R1: EXFMT und andere Displayfile I/O Operationen mit Angabe Datenstruktur woher/wohin
geht: aus Feldname DSPF Bufferposition dynamisch ermitteln
geht: externe Datenstruktur Feldposition aus Feldame ermitteln

geht schlecht: Zeug fragen und Erläuterungen sparen

D*B


Hi Leute,

ich würde gern den Inhalt einer Variable als Variable ansprechen :)

Dqqfeld s 10 inz('plnd')
plnd ist in meiner Bildschirmdefinition deklariert als char(10).

Der Inhalt des feldes QQFELD hat den Wert des Namens der Variable "plnd".
Kann ich jetzt irgendwie dem Inhalt der Variable QQFELD einen wert zuweisen?

Ich hoffe ihr versteht mein Problem.
Die Erläuterung, wofür ich das benötige, erspar ich euch mal ;)

UFK
13-11-08, 01:17
Mit einer compilierten und alten Sprache wie RPG oder COBOL kann man das nicht formulieren.

Mit höheren Sprachen eher, soweit sie Pointer unterstützen auf jeden Fall, oder z.B. mit interpretierten Sprachen, vielleicht mit Java oder mit der auf der AS400 schon lange verfügbaren Sprache REXX.

REXX kann übrigens sehr schön CL-Commandos und SQL-Statements absetzen ...

BenderD
13-11-08, 06:00
das Problem sind nicht die Pointer, die hat RPG mittlerweile auch, das Problem ist, dass die Variablennamen beim compile wegfliegen und direkt durch Adressen ersetzt werden (bei Java übrigens auch).

D*B


Mit einer compilierten und alten Sprache wie RPG oder COBOL kann man das nicht formulieren.

Mit höheren Sprachen eher, soweit sie Pointer unterstützen auf jeden Fall, oder z.B. mit interpretierten Sprachen, vielleicht mit Java oder mit der auf der AS400 schon lange verfügbaren Sprache REXX.

REXX kann übrigens sehr schön CL-Commandos und SQL-Statements absetzen ...

Fuerchau
13-11-08, 07:47
Bezüglich Java o.ä. Compiler-Sprachen muss man halt mit Listen (Arrays, Collections, Dictonaries) arbeiten, die einen allgemeinen Typ (Object) speichern und über einen Index (Key) einen Zugriff ermöglichen.
Wer weiß, vielleicht gibts das irgendwann auch mal im ILERPG, da das Maschineninterface (MI) schon lange Data-Pointer unterstützt und somit einem Dynamischen Zugriff eigentlich nichts im Wege stehen würde.
Data-Pointer enthalten neben der Speicheradresse eben auch Typ und Ausprägung des Inhaltes.