cA708 ;Conversie Kermit-M naar ^HULP("RC") ;%A708 ; [ 28/02/2002 - 09:52:33 - 58863,35553 ] ; ; Input : TNR = nummer bestand (index-3 uit ^HULP("RC",Q,TNR)) ; MSDOS = volledige ms-dos referentie (d:\path\file.ext) ; FORM = nummer formaat ; ; Intern : alle R-variabelen ; ; Output : OK = 0 als transfert niet ok ; 1 als transfert volledig afgewerkt is ; T0 ;Conversie Kermit-M naar ^HULP("RC") ; T1 ;Ongeldige bestandsreferentie ; T2 ;Even geduld ... de conversie is aan de gang; T3 ;Het formaat ontbreekt of is ongeldig ; ; T0F ;Conversion Kermit-M à ^HULP("RC") ; T1F ;Lieu de fichier illégale ; T2F ;Un instant ... conversion en cours; T3F ;Le format n'est pas spécifié ou est invalable ; ; T0E ;Conversion Kermit-M into ^HULP("RC") ; T1E ;Invalid file reference ; T2E ;One moment ... conversion is busy; T3E ;Invalid or no file type ; ; 1 S OK=0,R=MSDOS I R[":" S R=$P(R,":",2) 11 S R1=$L(R,D) I R1 S R=$P(R,D,R1) 13 S RFN=$P(R,"."),REX=$P(R,".",2) I '$L(RFN)!'$L(REX) D E1 G YZ 15 F R="RFN","REX" S @R=$$UC^cAFA1(@R) 17 ; L +@KRGL@(RFN,REX):5 E S R=14 D F2 G YZ 19 G YZ:'$D(@KRGL@(RFN,REX)) S R=^(REX),RQ=$P(R,D,2),R0=$P(R,D,5) ; 2 I '$D(FORM) S FORM="" 21 I '$L(FORM),$D(^HULP("RC",Q,TNR,0)) S FORM=$P(^(0),D,5) 23 I '$L(FORM) D E2 G YZ I '$L($$SIGN^cAFA1("FORM",FORM,0))!$$SIG^cAFA1("FORM",FORM,130) D E2 G YZ 29 S RS=$$SIG^cAFA1("FORM",FORM,106),RL=$P($G(^(1)),D,4) D S1 I 'RL S RL=255 ; 3 S R1=0,(R2,R3)="",R4=0,(R6,R7)="",R8=0,FP=2203 W @F,@F1,$P($T(@("T2"_QT)),U,2) 31 I $L(R6)>RL G 4 33 I R2="" S R3=$O(@KRGL@(RFN,REX,R3)) G 4:R3="" S R2=^(R3) D S3 35 F R=1:1 Q:$L(R6)=511!'$L(R2) S R6=R6_$E(R2),R2=$E(R2,2,999) 37 I $L(R6)<511 G 33 ; ; record van Kermit-M naar ^HULP 4 I $L(R3),$L(RS),R6'[RS D E2 G YZ 41 I $L(RS) S R7=$P(R6,RS),R6=$P(R6,RS,2,999) G 45 43 S R7=$E(R6,1,RL),R6=$E(R6,RL+1,999) 45 I $L(R7)=RL!$L(RS) S R4=R4+1,^HULP("RC",Q,TNR,R4)=$$NT2D^cQCV(R7),R8=R8+$L(R7),$P(^(0),D,4)=R4,$P(^(0),D,9)=R8 I R3="" S OK=1 47 G 37:$L(R3),4:$L(R6) ; YZ K:$L(RFN)&$L(REX) @KRGL@(RFN,REX) K R,R0,R1,R2,R3,R4,R6,R7,R8,RQ,RFN,REX Q ; ; recordseparator omzetten naar controletekens S1 S RS1=RS,RS="" F RS2=1:1:$L(RS1) S RS3=$A(RS1,RS2),RS4=$A(RS1,RS2+1) D S2 S RS=RS_$C(RS3) S1Z K RS1,RS2,RS3,RS4 Q ; S2 I RS3=94 S RS2=RS2+1,RS3=$S(RS4=47:28,RS4<64:RS3,1:RS4-64) S2Z Q ; ; omzetten samengestelde tekens naar controletekens S3 S R1=R1+$L(R2),R2=$E(R6,$L(R6))_R2,R6=$E(R6,1,$L(R6)-1),RS1=1,FP=2303 W @F,R1 I R0 W " / ",R0," (",$J(R1/R0*100,6,2)," %)" S3A S RS1=$F(R2,RQ,RS1) G S3Z:RS1<1!(RS1>$L(R2)) S RS2=$E(R2,RS1) I RS2'=RQ S RS2=$C($A(RS2)-64) S3B S R2=$E(R2,1,RS1-2)_RS2_$E(R2,RS1+1,999) G S3A S3Z K RS1,RS2 Q ; E1 S K=$P($T(@("T1"_QT)),U,2) D F1 G EZ E2 S K=$P($T(@("T3"_QT)),U,2) D F1 G EZ EZ Q ; F1 S R=250 F2 D TXT^cAFA1(R) FZ K R Q ; ZZ ; 28.02.02 - 9 u 51 * V7.91