Anmelden

View Full Version : Suche Grundgerüst eines RPG Programms



Seiten : 1 [2]

RobertMack
17-02-06, 09:05
Nah dran, aber:

*INLR "verläßt" nicht das Programm sondert nimmt es nach dem Verlassen aus dem Stapel (HSP)

Die grobe Logik sieht so aus:

DOU *INKC = *ON
EXFMT FM01
ENDDO

EVAL *INLR = *ON

Gruß,
Robert


Ergänzung: sehe gerade, dass jemand schneller war ;-)
Beachte:
Falls es nach dem *INLR noch ausführbare Anweisungen gibt,
werden diese ausgeführt.

ensoniq2k
17-02-06, 09:11
OK, das hat mir schonmal sehr weitergeholfen. Ich bin ja Programmiertechnisch kein Neuling, hab mit C++ und VB schon einige Erfahrung gesammelt, auch weiss ich, dass GOTO seeeeehhhr Böse ist :D allterdings hab ich so meine Probleme mit den wunderschön abgekürzten Namen auf der AS/400, damit kann ich mich einfach nicht so recht anfreunden.

Ich glaube auch langsam hinter die Programmlogik meines Vorbildprogramms zu kommen. Mit BEGSR beginnt er eine Subroutine und mit ENDSR endet diese. In meinem Beispiel nutzt er statt EVAL den MOVE befehl, leider habe ich in unseren Unterlagen noch keine erklärung für einzelne Befehle gefunden... Wäre toll wenn mir jemand sagen könnte, was die machen, denn so alt wie unsere Unterlagen sind stützen die sich noch auf den RPG-Zyklus...

RobertMack
17-02-06, 09:20
allerdings hab ich so meine Probleme mit den wunderschön abgekürzten Namen auf der AS/400, damit kann ich mich einfach nicht so recht anfreunden

Das ist auch gut so, nur Mut:

DOU TasteF3gedrueckt = *ON
EXSR ErwarteEingabeMaske01
ENDDO

ErwarteEingabeMaske01 BEGSR
DOU TasteF3gedrueckt = *ON
EXFMT FMT01
ENDDO
ENDSR

Es ist 20 Jahre zu spät, um sich die kryptische Namensgebung anzueignen ;-)

Bei Bedarf können wir Dir hier gerne ein paar Links zur Literatur posten (wer hat's gerade parat?)

Alternativ kann ich Dir auch eine CD mit meiner persönlichen .pdf Sammlung zukommen lassen.

abYss
17-02-06, 09:22
Das ist meine Vorlage, von der ich zu lernen versuche:

************************************************** *******************
*
* VARIABELN FESTLEGEN
*
D A S 3 0
D B S 3 0
D UNTER S 8 3
D X S 15 0
*
*
hier werdend die Variablen definiert, dürfte klar sein :)
************************************************** *******************
* PROGRAMMSTEUERUNG
*
C EXSR PROGRAMM
*
C EXSR ENDE
*
die Subroutinen Programm und Ende werden aufgerufen
************************************************** *******************
* PROGRAMM
*
CSR PROGRAMM BEGSR
*
C START TAG
*
C *INKC IFEQ *ON
C GOTO PROG_END
C ENDIF

wenn *INKC an ist = (F3 gedrückt), denn GOTO Programmende.
*INKx (x steht für A-Y) sind die Anzeiger für die F-Tasten. KA = F1; KB = F2 usw. KO wird aber ausgelassen!!

C EXFMT FM01

Bildschirmformat FM01 wird ausgegeben
*
C A ADD B X

A und B wird addiert und in X gestellt

C X MULT X X

X wird mit X multipliziert und in X gestellt

C SQRT X UNTER

SQRT kenne ich nicht, soll da vllt SORT heissen?
*
C GOTO START

selbsterklärend :)

CSR PROG_END ENDSR

ende der Routine
*
************************************************** ***************
* PROGRAMM-ENDE
************************************************** ***************
*
CSR ENDE BEGSR
*
C MOVE *ON *INLR
*
CSR ENDSR
*
************************************************** ***************

Und das ist meine eigens kreierte Version:

*
************************************************** ***************
*
** BILDSCHIRMDATEI FESTLEGEN
*
DSPFTestSLCF E WORKSTN
*INKC IFEQ *ON
************************************************** *******************
EVAL *INLR = *ON
* VARIABELN FESTLEGEN
*
*
*

Also " EVAL *INLR = *ON "
bedeutet soviel wie "Beende das Programm", richtig?

mal eine kleine Erklärung zu deinem Programm

abYss
17-02-06, 09:25
Hier ein Link zu einem wie ich finde guten Handbuch:

publib.boulder.ibm.com/iseries/v5r2/ic2924/books/c0925084.pdf

Gibt einen guten Überblick.

mfg abYss

ensoniq2k
17-02-06, 09:28
SQRT = Squareroute = Quadratwurzel

So kann man voneinander lernen ;)

Die erklärung des Quelltextes ist schonmal super, Danke! Das hilft mir fürs erste sehr weite, mal kapiert zu haben was da eigentlich passiert

abYss
17-02-06, 09:30
Danke, man lernt nie aus :)