Auch immer wieder erleichternt wären
Rückgabewerte in Proceduren, die man
angeben könnte.
Es giebt zwars Ansatz-Not-Lösungen, nur
bieten diese nicht unbedingt den Kompfort,
den man haben möchte.
Auch das @$(0), $%(0), usw. ist nicht
gerade sehr komfortabel, wünschenswert wäre
hier die Angabe einer Variable.
PROC unterprogramm
Parameters in1%, in2%
ParametersReturn out1%, out2%, out3% 'NEU
'hier werden daten aus der Seriellen gelesen
'und in Out1%, out2% und out3% abgelegt.
Return() 'NEU
EndProc
'Demo
cls
declare w1%,w2%,w3%
unterprogramm $2F8, 30, w1%, w2%, w3%
PRINT w1%, w2%, w3%
END
die Demo Ruft hier die Proc "Unterprogramm"
auf, wo 5 Parameters übergeben werden.
In der Proc selber werden nun wie gehabt mit
PARAMETERS die daten eingelesen, hier 2 Stück,
bleiben ja nich 3 Übrig.
In der nächsten Zeile werden nun mit dem
néuem Commando PARAMETERSRETURN die restlichen
Variablenadressen gelesen, welche im Aufruf
UNTERPROGRAMM angegeben wurden, hier w1% bis
w3%. Die Variablen out1 bis out3 in der
Proc sind hier nur Temponär verfügbr,
als Hilfe úm mit den Ausgabewerten arbeitern
zu können. Also Sind Out1 bis Out3 Variablen,
als ob diese mit Declare exestieren.
RETURN() übergiebt nun die 3 Werte von
out1 bis out3 an den Variablen, die beim
Aufruf angegeben wurden, also w1 bis w3.
Return() macht quasi nix anderes, als alles
was in PARAMETERSRETURN steht, an die
Variablen, die ibeim Proc Aufruf angegeben wurden, diesen zu übergeben, bzw, den Inhalt.
Ich Denke mal, das dies möglich sein müste,
Da Profan ja intern auf jede Variable
Zugreiffen kann, selbst in Proceduren,
also ist ja dann auch die Adresse jeder
Variable zu jedem Zeitpunkt bekannt.
Und was mit Parameters in eine Richtig geht,
quasi in die Procedure, müste auch in die
Andere Richting gehen.
Thorsten
|