Uni-Basic Program :
SUBROUTINE S.HOME.PHONE( OUTPUT.DATA, PER_ID )
OPEN '', 'PERSON' TO PER.FL ELSE STOP 'CANNOT OPEN PERSON'
OPEN '', 'ADDRESS' TO ADDR.FL ELSE STOP 'CANNOT OPEN ADDRESS'
OUTPUT.DATA = ''
READ PER.REC FROM PER.FL,PER_ID THEN
MAX.ADDR.IN = DCOUNT(PER.REC<17>,@VM)
FOR I = 1 TO MAX.ADDR.IN
IF PER.REC<136,I> = 'H' THEN
READ ADDR.REC FROM ADDR.FL,PER.REC<17,I> THEN
MAX.PHONES.IN = DCOUNT(ADDR.REC<26>,@VM)
IF ADDR.REC<26> = '' THEN
OUTPUT.DATA = ADDR.REC<18,1>
END ELSE
FOR J = 1 TO MAX.PHONES.IN
IF ADDR.REC<26,J> = 'HOME' OR ADDR.REC<26,J> = 'EVE' THEN
OUTPUT.DATA = ADDR.REC<18,J>
END
NEXT J
END
BEGIN CASE
CASE LEN(OUTPUT.DATA) = 8
OUTPUT.DATA = OUTPUT.DATA[1,3]:'-':OUTPUT.DATA[5,4]
CASE LEN(OUTPUT.DATA) = 7
OUTPUT.DATA = OUTPUT.DATA[1,3]:'-':OUTPUT.DATA[4,4]
CASE LEN(OUTPUT.DATA) = 12
OUTPUT.DATA = OUTPUT.DATA[1,3]:'-':OUTPUT.DATA[5,3]:'-':OUTPUT.DATA[9,4]
CASE 1
OUTPUT.DATA = OUTPUT.DATA[1,3]:'-':OUTPUT.DATA[4,3]:'-':OUTPUT.DATA[7,4]
END CASE
END
END
NEXT I
IF OUTPUT.DATA[1,1] = '-' THEN OUTPUT.DATA = ''
END
END
I-Desc :
001: I
002: SUBR("S-HOME-PHONE",@ID)
003:
004: Home Phone
005: 15L
006: S
007:
008: S.HOME.PHONE
009: PERSON
This page hosted by
Get your own Free Homepage