PDA

View Full Version : Übertragung von gleichen Datenstrukturen



alex61
11-03-20, 15:33
Hallo !
ich habe in einem Programm RPG-Programm 2 Datenstrukturen definiert, um den
Inhalt der einen Struktur in der anderen zu sichern und dann natürlich auch wieder
zurückzuspielen.

======================
I MCP1 E DSMCPPF1Y0
I SICHMCP1 E DSMCPPF1Y0
======================

Geht das überhaupt wie ich mir das denke und wie wäre der Übertragungsbefehl ?
Für Infos, vielen Dank.

Fuerchau
11-03-20, 15:38
Wenn die Strukturen identisch sind, gings das ja schon immer:
move S1 S2
eval S2 = S1;

Für differenziertere Betrachtungen muss eine DS per Qualified definiert werden, dann kann man mit
eval-corr S2 = S1;
alle Felder mit identischem Namen und kompatibler Definition übertragen.
Kompatibel heißt: alle numerischen wenn die Werte nicht abgeschnitten werden, char nur mit char und UCS2 nur mit UCS2.
Der Kompiler listet am Ende dann die Felder an, die übertragen wurde, und die Inkompatiblen mit Fehlergrund.

alex61
11-03-20, 15:46
vielen Dank !!

Grüße A.

alex61
12-03-20, 07:44
doch noch eine Frage hierzu: in meinem Beispiel referenziere ich ja auf eine Dateistruktur und die wird
hier 2x angesprochen. Beim Compilieren bekomme ich doch dann sicher Fehler. Wie umgehe ich das ?
Ich spreche vom alten RPG - nicht ILE.
Gruss A.

Fuerchau
12-03-20, 09:29
Das kannst du nur durch Rename jedes einzelnen Feldes der DS erreichen, da Nicht-ILE kein Qualified kennt.
Du kannst allerdings ohne Probleme per CVTRPGSRC ein ILERPG draus machen um die Features zu nutzen. Du bist ja nicht gezwungen, dann Free zu kodieren.