-
Variablenname in Variable
Hallo.
Ich habe in einem RPG Programm folgende Variablen definiert:
ABC
DEF
GHI
Nun habe ich im fogende eine Variable XXX. In dieser steht entweder ABC, DEF oder GHI.
Je nachdem was in XXX steht möchte ich nun der entsprechenden Variablen den Text "TEST" hinzufügen. Ich kann ja aber nicht einfach:
XXX = XXX + "TEST" schreiben da er dann ja den Wert "TEST" der Variablen XXX hinzufügt und nicht einer der anderen. Er soll also falls zB in XXX "ABC" steht folgendes machen:
ABC = ABC + "TEST"
Wie kann ich das machen, das ich den Inhalt der Variablen XXX als Variablenname einer anderen interpretiere?
Ich hoffe das war verständlich.
Danke schonmal und Gruß
Novus
-
Wie wär's mit select oder if Statements?
select;
when XXX = 'ABC';
ABC = ABC + 'TEST';
...
endsl;
Geht auch mit if. (if XXX = 'ABC'; ...)
kf
-
Zitat von Novus
Wie kann ich das machen, das ich den Inhalt der Variablen XXX als Variablenname einer anderen interpretiere?
Mit reinem RPG wird das fummelig bis fast unmöglich. Aber das ist doch eine gute Gelegenheit, SQL zu nehmen. Zum Beispiel mit PREPARE und co ;-)
-
Code:
D VARTAB S 10A Dim(3)
D VARXXX S 10A
D V S 10I 0
/Free
VARTAB(1) = 'ABC';
VARTAB(2) = 'DEF';
VARTAB(3) = 'GHI';
VARXXX = 'ABC';
V = %Lookup(VARXXX:VARTAB);
If V > 0;
VARTAB(V) = %Trim(VARTAB(V)) + 'Test';
EndIf;
*InLr = *On;
/End-Free
-
@Robert
Da kannst du auch gleich
VARXXX + 'Test'
nehmen.
Es soll der Inhalt der Variablen ABC genommen werden.
So suchst du ja nur nach dem Text und verküpfst diesen dann.
Hier hilft nur ein Array mit 2 Feldern. Feld 1= Name des Elements, Feld 2 = Inhalt.
Das hat man schon früher mit den 2 Tabellen in der E-Definition gelöst.
Lookup in der 1. Tabelle, Ergebnis in der selben Position der 2. Tabelle.
-
Zitat von Fuerchau
Hier hilft nur ein Array mit 2 Feldern. Feld 1= Name des Elements, Feld 2 = Inhalt.
Das hat man schon früher mit den 2 Tabellen in der E-Definition gelöst.
Lookup in der 1. Tabelle, Ergebnis in der selben Position der 2. Tabelle.
Für solche Schweinereien lieb(t)e ich das gute alte Net.Data - da ging sowas wie
@DTW_ASSIGN(newvar, $(VAR$(BLUBBER$(PREF))))
Auch wenns der Lesbarkeit nicht dienlich ist...
-
Powershell, Rexx, Java/Script, Excel, VBA, .Net, u.v.m.
ILERPG: njet!
-
Zitat von Fuerchau
Powershell, Rexx, Java/Script, Excel, VBA, .Net, u.v.m.
ILERPG: njet!
... du hast dynamische Speicher Allokation, typisierte Arrays, was brauchst Du mehr?
D*B
PS: gute Programme kommen zuweilen ohne so etwas aus!!!
-
Dynamische Arrays, dynamische(re)s SQL, Assoziative Arrays und Feldlisten, ...
Oder einfach nur eine .Net-Portierung (Core) auf AS/400, ähm, IBM i.
Technisch wäre das möglich.
Man stelle sich nur vor: eine 128-Bit-Net-Entwicklung;-).
-
Dynamische Arrays kannst Du auch in RPG haben.
kf
-
Aber nicht typsicher. Klar kann ich ein Array bis max. 16MB per Based-Pointer definieren und per Alloc Speicher zuweisen. Allerdings liefert mir %elem() die Anzahl definierter Elemente und nicht der Anzahl allokierter Elemente. Man muss also genau wissen, wieviele Elemente gerade angelegt sind, sonst liefern %lookup und andere Funktionen Speicherfehler oder liefern Schrott.
Das ist dann eher Halbdynamic.
Un dann wäre da noch die Grenze von 16MB für Arrays (Dim).
-
Vielen Dank für die ganzen Antworten.
Habe mich jett dazu entschieden mit einem Parameter abzufragen und dann mit Select die Operation durchzuführen. Klappt wie gewünscht. Das andere wäre nur eleganter gewesen
Viele Grüße
Similar Threads
-
By pabloesco in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 21-04-20, 11:47
-
By roman.klinisch in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 06-04-20, 13:19
-
By harkne in forum NEWSboard Programmierung
Antworten: 19
Letzter Beitrag: 04-12-14, 08:35
-
By Robi in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 21-03-03, 09:16
-
By Henrik Motzkus in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 05-03-02, 09:13
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks