| |
|
|
p.specht
| Getestet in XProfan11.2a: Aus einer Proc lässt sich normalerweise mit Return x nur ein einziger Wert zurückliefern (Es sei denn, man übergibt ein Array - dann wird auf dieses Array gearbeitet)! Verzichtet man auf einen Proc-Aufruf mit Klammern, also KEINE "Funktion" (Parameter sind naturalmente weiterhin zulässig), so lassen sich per Dummy-Proc Aufruf bis zu 15 verschiedene Werte in den Hauptteil zurückliefern, ohne dabei später zu disposende Bereiche oder gar einen eigenen globalen Stack einrichten zu müssen. Achtung: Aufrufe aus dem Hauptteil mit Parametern IN KLAMMER löschen bereits VOR dem return diesen internen Parameterstack!
cls
split "abcdefghijklmno",99
print "0:";@$(0),"1:";@$(1),"2:";@$(2),"3:";@$(3),"4:";@$(4),\
"5:";@$(5),"6:";@$(6),"7:";@$(7),"8:";@$(8),"9:";@$(9),"10:";@$(10),\
"11:";@$(11),"12:";@$(12),"13:";@$(13),"14:";@$(14),"15:";@$(15)
waitinput
end
proc split : parameters g$,f$
declare a$[15] : a$[]=mid$(g$,&index+1,1)
dummy a$[0],a$[1],a$[2],a$[3],a$[4],a$[5],a$[6],a$[7],\
a$[8],a$[9],a$[10],a$[11],a$[12],a$[13],a$[14],a$[15]
return f$
endproc
proc dummy
endproc
|
|
|
| Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 30.04.2021 ▲ |
|
|
|
|
Michael W. | |
|
| |
|
|
|
p.specht
| Muss ja keiner ! Aber wie würdest Du es denn machen, Michael? |
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 02.05.2021 ▲ |
|
|
|
|
Michael W. | Mehrere Werte circa eine Struktur. Es geht naturalmente auch als Hash-Array, also die "Key" / "Value" Variante. Oder wenn es keiner speziellen Auswahl bedarf einfach in ein Array.
Die hier angegebene Variante würde ich als "Dirty Trick" bezeichnen. Und da ist man nie sicher, ob das in Zukunft auch noch so funktioniert.
Jetzt weiß ich aber, warum dies hier bei PType$() steht:
Die Ermittlung des Typs muß direkt am Anfang der Prozedur vor einem etwaigen ersten Funktions- oder Prozeduraufruf stehen! |
|
|
| |
|
|