home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
clarion
/
library
/
wpmerg
/
wpmerge.cla
Wrap
Text File
|
1991-12-13
|
4KB
|
157 lines
! 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)))
.