cABIE ;Import & Export between Caché & MSM ;%ABIE; [ 02/06/01 10:50 AM ] ; START K (%ABIE) S quiet=$S($D(%ABIE):1,1:0) I 'quiet W !,$P($T(+0),";",2),!,"This system: ",$P($ZV," ",1),! I $ZV["MSM" S %UCO=$ZU(0) ; UCI G EXIM:$ZV'["MSM" S K=$G(%ABIE("UCI"),"T") I 'quiet W !!,"UCI: M[] = MGR, T[] = TST: .",*8 R K G UCI:'$L(K),UCI:"MGRmgrTSts-^"'[K,YZ:K="-",YZ:K="^" S UCI=$S("Mm"[$E(K):"MGR",1:"TST") D IN^%QMSMSW(UCI) I 'quiet W !!,"You're now in ",$ZU(0),! ; EXIM S K=$G(%ABIE("PORT"),"E") I 'quiet 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 W !!,$S(TRDIR="E":"To",1:"From")," system? (C=Caché, M=Msm, [] = ",$S($ZV["MSM":"MSM",1:"Caché"),"): .",*8 R K G TOFR:"CcMm-^"'[K,EXIM:K="-",EXIM:K="^" I K="" S K=$S($ZV["MSM":"M",1:"C") S K=$S("Cc"[K:"C",1:"M"),@$S(TRDIR="E":"TRT",1:"TRF")=K I 'quiet W !!,$S(TRDIR="E":"Export",1:"Import")," from " I 'quiet W $S(TRF="M":"MSM",1:"Caché")," to ",$S(TRT="M":"MSM",1:"Caché") ; GLOROU S K=$G(%ABIE("GLRO"),"G") I 'quiet 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") ; EXT S EXT=$S(TRT="M":$S(TRW="R":"rou",1:"glo"),1:$S(TRW="R":"rsa",1:"gsa")) I 'quiet W !!,"The file-extention must be: ",EXT ; FILE S K=$G(%ABIE("FILE"),"c:\temp\exp")_"."_EXT I 'quiet 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 GLOROU I $P($$UC(K),".",2)'=$$UC(EXT) G EXT S TRFIL=K I TRDIR="E",TRF'=TRT D RULES ; DOIT 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 $D(QUIT) G FILE ; EXIT I $ZV["MSM",$L($G(%UCO)) D IN^%QMSMSW(%UCO) ; YZ Q ; RULES ;; MSM <-> Caché ;;^%;$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))" 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 ; 07.02.01 - 10 u 46 * V7.84