home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / clarion / library / wpmerg / wpmerge.cla
Text File  |  1991-12-13  |  4KB  |  157 lines

  1. !  Illustrates building a merge file for WordPerfect.
  2. !
  3. !  Yes I know its all in CAPS, but I like it that way <g>
  4. !
  5. !  Any comments/questions you can get me at the following email addresses
  6. !
  7. !  Compuserve    100010,1150
  8. !  CIX        mmc
  9. !  CARGO BBS
  10. !
  11. !  Mike McLoughlin
  12. !
  13. !
  14. !═════════════════════════════════════════════════════════════════════════════
  15.  
  16.          MEMBER()
  17.  
  18.  
  19. WPMERGE         PROCEDURE
  20.  
  21.  
  22. SCREEN         SCREEN      WINDOW(10,50),AT(10,20),PRE(SCR),HUE(15,5)
  23.  OMIT('**-END-**')      Rows 10 thru 18
  24.            ╔══════════════════════════════════════════════╗
  25.            ║                          ║
  26.            ║                          ║
  27.            ║    BUILDING MERGE FILE FOR WORDPERFECT...      ║
  28.            ║                          ║
  29.            ║           Records written <<<<<<<<#      ║
  30.            ║                          ║
  31.            ║                          ║
  32.            ╚══════════════════════════════════════════════╝
  33. **-END-**
  34.  
  35.            ROW(4,4)      PAINT(1,11),HUE(31,5)
  36.            ROW(4,15)  PAINT(3,29),HUE(31,5)
  37.            ROW(6,15)  PAINT(1,25),HUE(15,5)
  38.            ROW(10,1)  PAINT(1,1),TRN
  39.            ROW(1,49)  PAINT(1,2),TRN
  40.            ROW(2,49)  PAINT(9,2),HUE(8,0),TRN
  41.            ROW(10,2)  PAINT(1,47),HUE(8,0),TRN
  42.            ROW(1,1)      STRING('╔═{46}╗')
  43.            ROW(2,1)      REPEAT(7);STRING('║<0{46}>║') .
  44.            ROW(9,1)      STRING('╚═{46}╝')
  45.            ROW(4,6)      STRING('BUILDING MERGE FILE FOR WORDPERFECT...')
  46.            ROW(6,13)  STRING('Records written')
  47. COUNT         COL(29)  STRING(@n_9)
  48.          .
  49.  
  50.  
  51. DOSFILE         DOS,NAME(CNF:MERGEPATH),PRE(DSF)
  52. RECORD         RECORD
  53. LINE         STRING(100)
  54.          . .
  55.  
  56.  
  57.  
  58. PAD         BYTE
  59.  
  60.   CODE
  61.   OPEN(SCREEN)
  62.   CREATE(DOSFILE)
  63.     IF ERRORCODE() THEN STOP().
  64.   SET(NAMES)                     ! POINT AT START OF NAME &
  65.                          ! ADDRESS FILE
  66.   LOOP UNTIL EOF(NAMES)                 !  READ UNTIL END OF FILE
  67.     NEXT(NAMES)                     !    READ NEXT RECORD
  68.     SCR:COUNT+=1
  69.     DO BUILDREC                     ! construct the DOS file
  70.   .                         ! lines and append to file
  71.   CLOSE(DOSFILE)
  72.  
  73.  
  74.  
  75. BUILDREC     ROUTINE
  76.      PAD=0
  77.      IF CON:COTITLE
  78.         DSF:LINE=LEFT(CLIP(CON:COTITLE)) & '<18,10>'
  79.         DSF:LINE=LEFT(DSF:LINE)
  80.         ADD(DOSFILE,LEN(CLIP(DSF:LINE)))
  81.       ELSE
  82.         PAD+=1
  83.      .
  84.  
  85.  
  86.  
  87.     IF CON:STREET
  88.        DSF:LINE=LEFT(CLIP(CON:STREET)) & '<18,10>'
  89.         DSF:LINE=CLIP(LEFT(DSF:LINE))
  90.        ADD(DOSFILE,LEN(CLIP(DSF:LINE)))
  91.       ELSE
  92.         PAD+=1
  93.      .
  94.  
  95.  
  96.     IF CON:TOWN
  97.        DSF:LINE=LEFT(CLIP(CON:TOWN)) & '<18,10>'
  98.         DSF:LINE=CLIP(LEFT(DSF:LINE))
  99.        ADD(DOSFILE,LEN(CLIP(DSF:LINE)))
  100.       ELSE
  101.         PAD+=1
  102.      .
  103.  
  104.  
  105.     IF CON:COUNTY
  106.        DSF:LINE=LEFT(CLIP(CON:COUNTY)) & '<18,10>'
  107.         DSF:LINE=CLIP(LEFT(DSF:LINE))
  108.        ADD(DOSFILE,LEN(CLIP(DSF:LINE)))
  109.       ELSE
  110.         PAD+=1
  111.      .
  112.  
  113.  
  114.        IF CON:POST1
  115.        DSF:LINE=LEFT(CLIP(CON:POST1)) & ' ' & LEFT(CLIP(CON:POST2)) & '<18,10>'
  116.         DSF:LINE=CLIP(LEFT(DSF:LINE))
  117.        ADD(DOSFILE,LEN(CLIP(DSF:LINE)))
  118.       ELSE
  119.         PAD+=1
  120.      .
  121.  
  122.        DO PADDING                 ! PAD OUT NAME/ADDRESS
  123.                          ! TO STANDARD LENGTH
  124.  
  125.  
  126.    IF( INSTRING('Sir',CON:SALUTATION,1,1)) OR ( INSTRING('Sirs',CON:SALUTATION,1,1)) OR ( INSTRING('Madam',CON:SALUTATION,1,1))
  127.        DSF:LINE='Yours faithfully' & '<18,10>'
  128.         DSF:LINE=CLIP(LEFT(DSF:LINE))
  129.        ADD(DOSFILE,LEN(CLIP(DSF:LINE)))
  130.       ELSE
  131.        DSF:LINE='Yours sincerely' & '<18,10>'
  132.         DSF:LINE=CLIP(LEFT(DSF:LINE))
  133.        ADD(DOSFILE,LEN(CLIP(DSF:LINE)))
  134.      .
  135.  
  136.  
  137.        DSF:LINE=LEFT(CLIP(FORMAT_DATE(CON:LASTPHONE))) & '<18,10>'
  138.         DSF:LINE=CLIP(LEFT(DSF:LINE))
  139.        ADD(DOSFILE,LEN(CLIP(DSF:LINE)))
  140.  
  141.        DSF:LINE=LEFT(CLIP(FORMAT_DATE(CON:LASTLET))) & '<18,10>'
  142.         DSF:LINE=CLIP(LEFT(DSF:LINE))
  143.        ADD(DOSFILE,LEN(CLIP(DSF:LINE)))
  144.  
  145.  
  146.        DSF:LINE='<5,13>'             ! END OF RECORD
  147.         DSF:LINE=CLIP(LEFT(DSF:LINE))
  148.        ADD(DOSFILE,LEN(CLIP(DSF:LINE)))
  149.  
  150.  
  151. PADDING         ROUTINE
  152.      LOOP PAD TIMES
  153.        DSF:LINE='<18,10>'
  154.         DSF:LINE=CLIP(LEFT(DSF:LINE))
  155.        ADD(DOSFILE,LEN(CLIP(DSF:LINE)))
  156.      .
  157.