cA338 ;Lokale variabelen -> ^TEMPS(boot,$J) ;%A338 ; [ 02/14/01 5:46 PM ] G 1 ; T0 ;Lokale variabelen -> ^TEMPS(boot,$J) ; T0F ;Variables locales -> ^TEMPS(boot,$J) ; T0E ;Local variables -> ^TEMPS(boot,$J) ; ; ; Dit programma maakt een kopie van de lokale variabelen in ^TEMPS ; deze kunnen daarna via %A339 terug worden opgeladen ; ; Interne variabelen: ; %(0) = volgnummer in ^TEMPS(boot,$J) ; %(1) = naam variabele zonder subscripts ; %(2) = naam variabele met subscripts ; %(3) = volgnummer per variabele ; %(4) = volgnummer per blok van 255 bytes ; %(5) = kopie van inhoud lokale variabele ; ; Start 1 S boot=0 I $ZV["MSM",$ZV["4." D MASTER^cQ5 I $ZV'["MSM" D MASTER^cQ5 S %(0)=$O(^TEMPS(boot,$J,""),-1)+1 S %vhTeBewarenObjecten = ##class(%ArrayOfObjects).%New() ; INT ; Instappunt als applicatie zelf boot en %(0) bepaalt (af te raden) S $ZT="TRAP^cAN000" S ^TEMPS(boot,$J,%(0))=$H S %(1)="%",%(3)=0 2 S %(1)=$O(@%(1)) I %(1)="" G YZ S %(2)=%(1) I $D(@%(2))#10 D S 3 S %(2)=$Q(@%(2)) I %(2)="" G 2 I $D(@%(2))#10 D S G 3 ; YZ K % Q ; ; Save S if $IsObject($get(@%(2))) do %vhTeBewarenObjecten.SetAt(@%(2),%(2)) G SZ S %(3)=%(3)+1,%(4)=1 S ^TEMPS(boot,$J,%(0),%(3))=%(2),%(5)=@%(2) SA S ^TEMPS(boot,$J,%(0),%(3),%(4))=$E(%(5),1,255) I $L(%(5))>255 S %(4)=%(4)+1,%(5)=$E(%(5),256,$L(%(5))) G SA SZ Q ; ZZ ; 30.03.01 - 13 u 39 * V7.85