[613] | 1 | LEXDDT2 ; ISL Display Defaults - Concatenate Text ; 09-23-96
|
---|
| 2 | ;;2.0;LEXICON UTILITY;;Sep 23, 1996;Build 1
|
---|
| 3 | ;
|
---|
| 4 | CONCAT ; Concatenation of Data Elements
|
---|
| 5 | N LEXTI,LEXTL,LEXTP
|
---|
| 6 | PHRASE ; Get Phrase and Parse into Words
|
---|
| 7 | I $D(LEX(LEXT,"H")) S LEXTP=LEX(LEXT,"H"),LEXTI=0 D WORD
|
---|
| 8 | F LEXTI=1:1:LEX(LEXT,0) D
|
---|
| 9 | . S LEXTP=LEX(LEXT,LEXTI)
|
---|
| 10 | . S:LEXTP["/" LEXTP=$P(LEXTP,"/",1)_" or "_$P(LEXTP,"/",2),LEXTP=$$TRIM(LEXTP)
|
---|
| 11 | . I LEXTI=LEX(LEXT,0),LEX(LEXT,0)>1 D
|
---|
| 12 | . . S LEXTP="and "_LEXTP_"."
|
---|
| 13 | . . S:$E(LEXTSTR,$L(LEXTSTR))["," LEXTSTR=$E(LEXTSTR,1,($L(LEXTSTR)-1))
|
---|
| 14 | . I LEXTI=LEX(LEXT,0),LEX(LEXT,0)'>1 D
|
---|
| 15 | . . S LEXTP=LEXTP_"."
|
---|
| 16 | . . S:$E(LEXTSTR,$L(LEXTSTR))["," LEXTSTR=$E(LEXTSTR,1,($L(LEXTSTR)-1))
|
---|
| 17 | . D WORD I $L(LEXTSTR)>LEXSTLN D SET S LEXTSTR=""
|
---|
| 18 | I $D(LEX(LEXT,"T")) D
|
---|
| 19 | . F Q:$E(LEXTSTR,$L(LEXTSTR))'?1P S LEXTSTR=$E(LEXTSTR,1,($L(LEXTSTR)-1)) Q:$E(LEXTSTR,$L(LEXTSTR))'?1P
|
---|
| 20 | . S LEXTP=LEX(LEXT,"T"),LEXTI=0 D WORD
|
---|
| 21 | S LEXTSTR=$$TRIM(LEXTSTR)
|
---|
| 22 | Q
|
---|
| 23 | WORD ; Concatenate Word
|
---|
| 24 | N LEXTW,LEXTD F LEXTD=1:1:$L(LEXTP," ") D
|
---|
| 25 | . S LEXTW=$P(LEXTP," ",LEXTD),LEXTW=$$TRIM(LEXTW)
|
---|
| 26 | . I LEXTD=$L(LEXTP," "),LEXTI>0 S LEXTW=LEXTW_","
|
---|
| 27 | . I ($L(LEXTSTR)+$L(LEXTW)+1)'>LEXSTLN D Q
|
---|
| 28 | . . S LEXTSTR=LEXTSTR_" "_LEXTW
|
---|
| 29 | . I ($L(LEXTSTR)+$L(LEXTW)+1)>LEXSTLN D
|
---|
| 30 | . . D SET S LEXTSTR=LEXTW
|
---|
| 31 | Q
|
---|
| 32 | EOC ; End of Concatenation
|
---|
| 33 | F Q:$E(LEXTSTR,$L(LEXTSTR))'="," S LEXTSTR=$E(LEXTSTR,1,($L(LEXTSTR)-1)) Q:$E(LEXTSTR,$L(LEXTSTR))'=","
|
---|
| 34 | D SET
|
---|
| 35 | Q
|
---|
| 36 | SET ; Set Array Node
|
---|
| 37 | S LEXTCTR=LEXTCTR+1 S LEX(LEXTCTR)=$$TRIM(LEXTSTR),LEX(0)=LEXTCTR
|
---|
| 38 | Q
|
---|
| 39 | TRIM(X) ; Remove Spaces
|
---|
| 40 | F Q:$E(X,$L(X))'=" " S X=$E(X,1,($L(X)-1)) Q:$E(X,$L(X))'=" "
|
---|
| 41 | F Q:$E(X,1)'=" " S X=$E(X,2,$L(X)) Q:$E(X,1)'=" "
|
---|
| 42 | Q X
|
---|