home *** CD-ROM | disk | FTP | other *** search
/ Power Programming / powerprogramming1994.iso / progtool / microcrn / issue_43.arc / DBMENU.ARC / PICTWORD.PRG < prev    next >
Text File  |  1988-05-23  |  4KB  |  172 lines

  1. ******************************************************
  2. *** NAME:  PICTWORD.PRG
  3. ***
  4. *** AUTHOR: BRETT FISHBURNE
  5. ***
  6. *** PURPOSE: ALLOW WORD ENTRY
  7. ***
  8. *****************************************************
  9. PARAMETERS Program, Menu, TileNo
  10.  
  11. *** ESTABLISH ENVIRONMENT
  12. SET ECHO OFF
  13. SET TALK OFF
  14. SET STATUS OFF
  15. SET SCOREBOARD OFF
  16.  
  17. *** DETERMINE THE NUMBER OF OPTIONS IN THE FILE
  18. SELECT MENUFILE
  19. SET FILTER TO TRIM(SYSTEM) + TRIM(TITLE) = TRIM(Program);
  20.               + TRIM(Menu)
  21. GOTO TOP
  22. COUNT FOR ELEMENT_TY = 2 TO Last_Lett
  23. Letter = CHR(Last_Lett + 64)
  24. GOTO TOP
  25.  
  26. *** DETERMINE IF THIS IS A NEW TILE OR NOT
  27. SET FILTER TO TRIM(SYSTEM) + TRIM(TITLE) + TRIM(STR(TILE)) =;
  28.               TRIM(Program) + TRIM(Menu) + TRIM(STR(TileNo))
  29. GOTO TOP
  30. COUNT FOR ELEMENT_TY = 2 TO Last_Lett
  31. GOTO TOP
  32.  
  33. *** INITIALIZE VARIABLES
  34. FirstTime = .T.
  35. QQuit = .F.
  36. i = '13'
  37. Pict = "'" + REPLICATE('X',75) + "'"
  38. DO WHILE VAL(i) > 0
  39.   Last&i = SPACE(75)
  40.   i = LTRIM(STR(VAL(i) - 1))
  41. ENDDO
  42. GOTO TOP
  43. FirstTime = .T.
  44. DO WHILE ((.NOT. EOF()).AND.(ELEMENT_TY # 1))
  45.   SKIP
  46. ENDDO
  47. IF .NOT. EOF()
  48.   Editing = .T.
  49.   Entry = ELEMENT
  50. ELSE
  51.   Editing = .F.
  52.   ENTRY = SPACE(78)
  53. ENDIF
  54.  
  55. *** DRAW SCREEN
  56. CLEAR
  57. @ 2,0 TO 2,79 DOUBLE
  58. @ 0,0 TO 21,79 DOUBLE
  59. @ 1,2 SAY Program
  60. @ 1,(40-INT(LEN(Menu)/2)) SAY Menu
  61. @ 1,55 SAY TIME()
  62. @ 1,70 SAY DATE()
  63.  
  64. *** CREATE A LOOP TO GET ENTRIES
  65. DO WHILE .NOT. QQuit
  66.  
  67.   *** UPDATE SCROLLED PART OF SCREEN
  68.   @ 7,1 CLEAR TO 20,78
  69.   @ 7,1 TO 20,78
  70.   i = '1'
  71.   DO WHILE VAL(i) < 13
  72.     @ 7+VAL(i),2 SAY TRIM(Last&i)
  73.     i = LTRIM(STR(VAL(i) + 1))
  74.   ENDDO
  75.  
  76.   *** UPDATE TIME AND DATE
  77.   @ 1,55 SAY TIME()
  78.   @ 1,70 SAY DATE()
  79.  
  80.   *** INITIALIZE VARIABLES FOR INPUT
  81.   IF FirstTime
  82.     EType = 1
  83.   ELSE
  84.     EType = 2
  85.   ENDIF
  86.  
  87.   *** GET NEXT ENTRY
  88.   IF FirstTime
  89.     @ 4,3 GET Entry PICTURE &Pict
  90.   ELSE
  91.     @ 6,3 CLEAR TO 6,78
  92.     @ 6,3 GET Entry PICTURE &Pict
  93.   ENDIF
  94.   READ
  95.  
  96.   *** PROCESS ENTRY IF NECESSARY
  97.   IF LEN(TRIM(Entry))=0
  98.     QQuit = .T.
  99.   ELSE
  100.     IF FirstTime
  101.       @ 4,2 CLEAR TO 4,78
  102.       @ 4,(40-INT(LEN(TRIM(Entry))/2)) SAY TRIM(Entry)
  103.       IF .NOT. EOF()
  104.         REPLACE ELEMENT WITH Entry
  105.         REPLACE ELEMENT_SI WITH LEN(TRIM(Entry))
  106.         GOTO TOP
  107.         DO WHILE ((ELEMENT_TY # 2).AND.(.NOT. EOF()))
  108.           SKIP
  109.         ENDDO
  110.         IF .NOT. EOF()
  111.           Entry = ELEMENT
  112.         ELSE
  113.           ENTRY = SPACE(73)
  114.         ENDIF
  115.       ELSE
  116.         SET FILTER TO
  117.         GOTO TOP
  118.         APPEND BLANK
  119.         REPLACE SYSTEM WITH Program
  120.         REPLACE TITLE WITH Menu
  121.         REPLACE TILE WITH TileNo
  122.         REPLACE ELEMENT_TY WITH 1
  123.         REPLACE ELEMENT_SI WITH LEN(TRIM(Entry))
  124.         REPLACE ELEMENT WITH Entry
  125.         GOTO BOTT
  126.         SKIP
  127.       ENDIF
  128.       I_No = '1'
  129.       FirstTime = .F.
  130.     ELSE
  131.       LAST&I_No = Entry
  132.       IF I_NO # '13'
  133.         I_No = LTRIM(STR(VAL(I_No) + 1))
  134.       ENDIF
  135.       IF .NOT. EOF()
  136.         REPLACE ELEMENT_SI WITH LEN(TRIM(Entry))
  137.         REPLACE ELEMENT WITH Entry
  138.         SKIP
  139.         DO WHILE ((.NOT. EOF()).AND.(ELEMENT_TY # 2))
  140.           SKIP
  141.         ENDDO
  142.         IF .NOT. EOF()
  143.           Entry = SPACE(75)
  144.         ELSE
  145.           Entry = ELEMENT
  146.         ENDIF
  147.       ELSE
  148.         SET FILTER TO
  149.         GOTO TOP
  150.         APPEND BLANK
  151.         REPLACE SYSTEM WITH Program
  152.         REPLACE TITLE WITH Menu
  153.         REPLACE TILE WITH TileNo
  154.         REPLACE ELEMENT_TY WITH 2
  155.         REPLACE ELEMENT_NO WITH Last_Lett
  156.         REPLACE ELEMENT_SI WITH LEN(TRIM(Entry))
  157.         REPLACE ELEMENT WITH Entry
  158.         Last_Lett = Last_Lett+1
  159.         GOTO BOTT
  160.         SKIP
  161.       ENDIF
  162.     ENDIF
  163.     i = '1'
  164.     DO WHILE VAL(i) < 13
  165.       Next_I = LTRIM(STR(VAL(i) + 1))
  166.       LAST&i = LAST&Next_I
  167.       i = Next_I
  168.     ENDDO
  169.   ENDIF
  170. ENDDO
  171. RETURN
  172.