home *** CD-ROM | disk | FTP | other *** search
- ! Illustrates building a merge file for WordPerfect.
- !
- ! Yes I know its all in CAPS, but I like it that way <g>
- !
- ! Any comments/questions you can get me at the following email addresses
- !
- ! Compuserve 100010,1150
- ! CIX mmc
- ! CARGO BBS
- !
- ! Mike McLoughlin
- !
- !
- !═════════════════════════════════════════════════════════════════════════════
-
- MEMBER()
-
-
- WPMERGE PROCEDURE
-
-
- SCREEN SCREEN WINDOW(10,50),AT(10,20),PRE(SCR),HUE(15,5)
- OMIT('**-END-**') Rows 10 thru 18
- ╔══════════════════════════════════════════════╗
- ║ ║
- ║ ║
- ║ BUILDING MERGE FILE FOR WORDPERFECT... ║
- ║ ║
- ║ Records written <<<<<<<<# ║
- ║ ║
- ║ ║
- ╚══════════════════════════════════════════════╝
- **-END-**
-
- ROW(4,4) PAINT(1,11),HUE(31,5)
- ROW(4,15) PAINT(3,29),HUE(31,5)
- ROW(6,15) PAINT(1,25),HUE(15,5)
- ROW(10,1) PAINT(1,1),TRN
- ROW(1,49) PAINT(1,2),TRN
- ROW(2,49) PAINT(9,2),HUE(8,0),TRN
- ROW(10,2) PAINT(1,47),HUE(8,0),TRN
- ROW(1,1) STRING('╔═{46}╗')
- ROW(2,1) REPEAT(7);STRING('║<0{46}>║') .
- ROW(9,1) STRING('╚═{46}╝')
- ROW(4,6) STRING('BUILDING MERGE FILE FOR WORDPERFECT...')
- ROW(6,13) STRING('Records written')
- COUNT COL(29) STRING(@n_9)
- .
-
-
- DOSFILE DOS,NAME(CNF:MERGEPATH),PRE(DSF)
- RECORD RECORD
- LINE STRING(100)
- . .
-
-
-
- PAD BYTE
-
- CODE
- OPEN(SCREEN)
- CREATE(DOSFILE)
- IF ERRORCODE() THEN STOP().
- SET(NAMES) ! POINT AT START OF NAME &
- ! ADDRESS FILE
- LOOP UNTIL EOF(NAMES) ! READ UNTIL END OF FILE
- NEXT(NAMES) ! READ NEXT RECORD
- SCR:COUNT+=1
- DO BUILDREC ! construct the DOS file
- . ! lines and append to file
- CLOSE(DOSFILE)
-
-
-
- BUILDREC ROUTINE
- PAD=0
- IF CON:COTITLE
- DSF:LINE=LEFT(CLIP(CON:COTITLE)) & '<18,10>'
- DSF:LINE=LEFT(DSF:LINE)
- ADD(DOSFILE,LEN(CLIP(DSF:LINE)))
- ELSE
- PAD+=1
- .
-
-
-
- IF CON:STREET
- DSF:LINE=LEFT(CLIP(CON:STREET)) & '<18,10>'
- DSF:LINE=CLIP(LEFT(DSF:LINE))
- ADD(DOSFILE,LEN(CLIP(DSF:LINE)))
- ELSE
- PAD+=1
- .
-
-
- IF CON:TOWN
- DSF:LINE=LEFT(CLIP(CON:TOWN)) & '<18,10>'
- DSF:LINE=CLIP(LEFT(DSF:LINE))
- ADD(DOSFILE,LEN(CLIP(DSF:LINE)))
- ELSE
- PAD+=1
- .
-
-
- IF CON:COUNTY
- DSF:LINE=LEFT(CLIP(CON:COUNTY)) & '<18,10>'
- DSF:LINE=CLIP(LEFT(DSF:LINE))
- ADD(DOSFILE,LEN(CLIP(DSF:LINE)))
- ELSE
- PAD+=1
- .
-
-
- IF CON:POST1
- DSF:LINE=LEFT(CLIP(CON:POST1)) & ' ' & LEFT(CLIP(CON:POST2)) & '<18,10>'
- DSF:LINE=CLIP(LEFT(DSF:LINE))
- ADD(DOSFILE,LEN(CLIP(DSF:LINE)))
- ELSE
- PAD+=1
- .
-
- DO PADDING ! PAD OUT NAME/ADDRESS
- ! TO STANDARD LENGTH
-
-
- IF( INSTRING('Sir',CON:SALUTATION,1,1)) OR ( INSTRING('Sirs',CON:SALUTATION,1,1)) OR ( INSTRING('Madam',CON:SALUTATION,1,1))
- DSF:LINE='Yours faithfully' & '<18,10>'
- DSF:LINE=CLIP(LEFT(DSF:LINE))
- ADD(DOSFILE,LEN(CLIP(DSF:LINE)))
- ELSE
- DSF:LINE='Yours sincerely' & '<18,10>'
- DSF:LINE=CLIP(LEFT(DSF:LINE))
- ADD(DOSFILE,LEN(CLIP(DSF:LINE)))
- .
-
-
- DSF:LINE=LEFT(CLIP(FORMAT_DATE(CON:LASTPHONE))) & '<18,10>'
- DSF:LINE=CLIP(LEFT(DSF:LINE))
- ADD(DOSFILE,LEN(CLIP(DSF:LINE)))
-
- DSF:LINE=LEFT(CLIP(FORMAT_DATE(CON:LASTLET))) & '<18,10>'
- DSF:LINE=CLIP(LEFT(DSF:LINE))
- ADD(DOSFILE,LEN(CLIP(DSF:LINE)))
-
-
- DSF:LINE='<5,13>' ! END OF RECORD
- DSF:LINE=CLIP(LEFT(DSF:LINE))
- ADD(DOSFILE,LEN(CLIP(DSF:LINE)))
-
-
- PADDING ROUTINE
- LOOP PAD TIMES
- DSF:LINE='<18,10>'
- DSF:LINE=CLIP(LEFT(DSF:LINE))
- ADD(DOSFILE,LEN(CLIP(DSF:LINE)))
- .
-