cABIE ;Import & Export globals & routines ;%ABIE; [ 22/01/2007 - 15:16:55 - 60652,55020 ] G START ; RI ;Cache Routine import S %ABIE("PORT")="I",%ABIE("TO")="C",%ABIE("GLRO")="R",int=1 G START RE ;Cache Routine export S %ABIE("PORT")="E",%ABIE("TO")="C",%ABIE("GLRO")="R",int=1 G START GI ;Cache Global import S %ABIE("PORT")="I",%ABIE("TO")="C",%ABIE("GLRO")="G",int=1 G START GE ;Cache Global export S %ABIE("PORT")="E",%ABIE("TO")="C",%ABIE("GLRO")="G",int=1 G START GEI ;Cache Extended Global import S %ABIE("PORT")="I",%ABIE("TO")="E",%ABIE("GLRO")="G",int=1 G START GEE ;Cache Extended Global export S %ABIE("PORT")="E",%ABIE("TO")="E",%ABIE("GLRO")="G",int=1 G START ; START S $ZT="ER^"_$T(+0) S quiet=$S($D(%ABIE("FILE")):1,1:0),int=$G(int,0) I 'quiet W !,$P($T(+1),";",2),!!,"This system: ",$P($ZV," ",1) ; UCI G UCIN:$ZV'["MSM" S K=$G(%ABIE("UCI"),"T"),U2=$P($ZU(2),",") S U3=$TR(U2,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz") I 'quiet W !,"UCI: M[] = MGR, ",$E(U2),"[] = ",U2,": .",*8 R K G UCI:'$L(K),UCI:"MGRmgr-^"_U2_U3'[K,YZ:K="-",YZ:K="^" S UCI=$S("Mm"[$E(K):"MGR",1:U2),%UCO=$ZU(0) D IN^%QMSMSW(UCI),^%A338 I 'quiet W !,"You're now in ",$ZU(0) ; UCIN I $ZV'["MSM" D ^cA338 ; EXIM S K=$G(%ABIE("PORT"),"E") I 'quiet&'int W !,"Export or Import? (E or I): .",*8 R K G EXIM:'$L(K),EXIM:"EeIi-^"'[K I "-^"[K G UCI:$ZV["MSM",YZ S TRDIR=$S("Ee"[K:"E",1:"I") S @$S(TRDIR="E":"TRF",1:"TRT")=$S($ZV["MSM":"M",1:"C") ; TOFR S K=$G(%ABIE("TO"),"C") I 'quiet&'int W !,$S(TRDIR="E":"To",1:"From")," system? (C=Cache, E[]=Cache Extended, M=Msm, [] = ",$S($ZV["MSM":"MSM",1:"Cache"),"): .",*8 R K G TOFR:"CcEeMm-^"'[K,EXIM:K="-",EXIM:K="^" I K="" S K=$S($ZV["MSM":"M",1:"C") S K=$S("Cc"[K:"C","Ee"[K:"E",1:"M"),@$S(TRDIR="E":"TRT",1:"TRF")=K I 'quiet W !,$S((TRT="E")!(TRF="E"):"Extended ",1:""),$S(TRDIR="E":"Export",1:"Import")," from " I 'quiet W $S(TRF="M":"MSM",1:"Cache")," to ",$S(TRT="M":"MSM",1:"Cache") ; GLOROU S K=$G(%ABIE("GLRO"),"G") I 'quiet&'int W !,"Globals or Routines (G=globals, R=Routines): .",*8 R K G GLOROU:'$L(K),GLOROU:"GgRr-^"'[K,TOFR:K="-",TOFR:K="^" S TRW=$S("Gg"[K:"G",1:"R") I TRW="R",TRT="E" S TRT="C" I 'quiet W !,$S(TRW="G":"Globals",1:"Routines") ; EXT S EXT=$S(TRT="M":$S(TRW="R":"rou",1:"glo"),1:$S(TRW="R":"rsa",1:"gsa")) ; FILE S K=$G(%ABIE("FILE"),""),DIR="" I $D(^cLOG($ZU(5),"cABIE","DIR")) S DIR=$TR(^cLOG($ZU(5),"cABIE","DIR"),"/","\") I $E(DIR,$L(DIR))'="\" S DIR=DIR_"\" I '$L(DIR),$D(^cLOG($ZCVT($ZU(110),"U"),"cABIE","DIR")) S DIR=$TR(^cLOG($ZCVT($ZU(110),"U"),"cABIE","DIR"),"/","\") I $E(DIR,$L(DIR))'="\" S DIR=DIR_"\" I 'quiet D . I $L(DIR) W !,"Directory ",DIR," will be prepended if you don't start your filename with \\, // or driveletter:" . W !,"The file-extention .",EXT," will be added if not entered." . W !,"Filename: " X "F I=1:1:60 W *46" X "F I=1:1:60 W *8" R K G FILE:K?.E1C.E I K="-"!(K="^") G EXIT:int,GLOROU I '$L(K) G FILE:'$D(%ABIE("FILE")) S QUIT=1 G EXIT I ($E(K,1,2)'="\\")&($E(K,1,2)'="//")&($E(K,2)'=":") S K=DIR_K I $L($P(K,"\",$L(K,"\")),".")=1 S K=K_"."_EXT I $$UC($P(K,".",$L(K,".")))'=$$UC(EXT) S:quiet K=K_"."_EXT I 'quiet W !!,"File extension '",$P(K,".",$L(K,".")),"' not accepted!",! G FILE W:'quiet!int !,"Filename: ",K,! S TRFIL=K I TRDIR="E",TRF'=TRT D RULES ; DOIT S QUIT=0 D @("^"_$S($ZV["MSM":"%",1:"c")_"ABIE"_$S(TRDIR="E":TRF_$S(TRW="R":"RS",1:"GS"),1:TRT_$S(TRW="R":"RR",1:"GR"))) I $G(QUIT),'quiet G FILE ; EXIT I $ZV["MSM" D ^%A339,IN^%QMSMSW(%UCO) I $ZV'["MSM" D ^cA339 I '$D(QUIT) S QUIT=0 K int,quiet,%ABIE ; YZ Q ; ER I ($ZE["")!($ZE[" Cache ;;^%;$ZU(0);/?DR; ;;^c;$ZU(5);/cDR; ;;;;;;;; ;;;;;;;; ;;;;;;;; ;;;;;;;; ;;;;;;; ;;;;;;; ;;;;;;;; ;;;;;;;; ;;;;;;;;; ;;;;;;;;; ;;;; ;;;; ;; ;; % <-> c for the first position of the first line ;; cp 850 <-> cp 1252 ; S K=1 F J=1:2 Q:$P($T(RULES+J),";",3)="" D . F I=3:1:$L($T(RULES+J),";") I $L($P($T(RULES+J),";",I)) D S K=K+1 .. S TR("M",K)=$P($T(RULES+J),";",I) .. S TR("C",K)=$P($T(RULES+J+1),";",I) .. I TR("M",K)=TR("C",K) K TR("M",K),TR("C",K) S K=K-1 S TRFCFL("M")="%",TRFCFL("C")="c" ; I TRF="M" D D2NT I TRF="C" D NT2D S RULE(0)="S %J=$TR(%J,From,To),%J=$TR(%J,$C(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31),$C(0,0,0,0,0,0,0,0,32))" S RULE(1)="X XCL(1) I 'EX,$E(%RN)=TRFCFL(TRF),$E(%J)=TRFCFL(TRF) S %J=TRFCFL(TRT)_$E(%J,2,$L(%J))" S RULE(2)="X XCL(1) I 'EX X XCL(2) I 'EX X RULE(3)" S RULE(3)="S J="""" F S J=$O(TR(TRF,J)) Q:J="""" I $E($P(%J,"" "",2),1,2)'="";;"",%J[TR(TRF,J) X RULE(4)" S RULE(4)="F Q:%J'[TR(TRF,J) S %J=$P(%J,TR(TRF,J))_TR(TRT,J)_$P(%J,TR(TRF,J),2,$L(%J,TR(TRF,J)))" S XCL(1)="S EX=$S(%RN=""cX364"":1,%RN=""cCHARWIN"":1,$E(%RN,1,2)=""cQ"":1,1:0)" S XCL(2)="S EX=$S(""c%""[$E(%RN)&($E(%RN,2,5)=""ABIE""):1,1:0)" ; S ROUTR="X RULE(0) Q:$E(%RN,1,2)=""cQ"" X:%X=1 RULE(1) X:%X>1 RULE(2)" S GLOTR="S %J=%DATA X RULE(3),RULE(0) S %DATA=%J" Q ; NT2D ;cp 1252 (Iso Latin 1) to cp 850 N I S (From,To)="" F I=128:1:255 S From=From_$C(I) S To=$C(32,32,32,32,32,32,32,32,32,32,32,32) S To=To_$C(32,32,32,32,32,32,32,32,32,32,32,32) S To=To_$C(32,32,32,32,32,32,32,32,32,173,189,156) S To=To_$C(207,190,221,245,249,184,166,174,170,240,169,238) S To=To_$C(248,241,253,252,239,230,244,250,247,251,167,175) S To=To_$C(172,171,243,168,183,181,182,199,142,143,146,128) S To=To_$C(212,144,210,211,222,214,215,216,209,165,227,224) S To=To_$C(226,229,153,158,157,235,233,234,154,237,232,225) S To=To_$C(133,160,131,198,132,134,145,135,138,130,136,137) S To=To_$C(141,161,140,139,208,164,149,162,147,228,148,246) S To=To_$C(155,151,163,150,129,236,231,152) Q ; D2NT ;cp 850 to cp 1252 (Iso Latin 1) N I S (From,To)="" F I=128:1:255 S From=From_$C(I) S To=$C(199,252,233,226,228,224,229,231,234,235,232) S To=To_$C(239,238,236,196,197,201,230,198,244,246,242) S To=To_$C(251,249,255,214,220,248,163,216,215,131,225) S To=To_$C(237,243,250,241,209,170,186,191,174,172,189) S To=To_$C(188,161,171,187,32,32,32,32,32,193,194) S To=To_$C(192,169,32,32,32,32,162,165,32,32,32) S To=To_$C(32,32,32,134,227,195,32,32,32,32,32) S To=To_$C(32,135,164,240,208,202,203,200,49,205,206) S To=To_$C(207,32,32,32,32,166,204,32,211,223,212) S To=To_$C(210,245,213,181,254,222,218,219,217,253,221) S To=To_$C(175,146,173,177,32,190,182,167,247,130,176) S To=To_$C(168,183,185,179,178,149,32) Q ; UC(K) Q $TR(K,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ") ; ZZ ; 29.07.08 - 11 u 27 * V9.02