0 'P R O C A L . 1 0 0 09/28/87 P R O j e c t C A L e n d a r from a formatted NOTE.DO file (C) JEAN-LUC CREVIER CIS [73720,2456] 1 '*************************** 2 '* - VARIABLES TABLE - * 3 '* CA$ =STRING CHARACTERS * 4 '* CE$ =CELL/CONTENT * 5 '* CH$()=FIELDS * 6 '* DR =SEARCHED DATE * 7 '* DT() =DATE/ITEM (DAY) * 8 '* IT$()=ITEMS * 9 '* JS$()=DAYS OF THE WEEK * 10 '* L1$ =STRAIGHT LINE * 11 '* L2$ =WEEK HEADER * 12 '* L3$ =EMPTY ITEM LINE * 13 '* LC$()=CALENDAR LINE * 14 '* LM() =MONTH LENGTH * 15 '* ML =MAX.#LINE PER CELL* 16 '* MO$()=MONTH NAMES * 17 '* NC$()=PROJECT NAME * 18 '* NI =NUMBER OF ITEMS * 19 '* PJ =VAL(PJ$) * 20 '* PJ$ =1st DAY OF MONTH * 21 '* PL =LINE POINTER * 22 '* PO() =CELL POSITIONS * 23 '* PP =POSITION POINTER * 24 '* PS$ =OUTPUT DEV:FILE * 25 '* QC =VAL(QC$) * 26 '* QC$ =WHICH PROJECT * 27 '* QM =VAL(QM$) * 28 '* QM$ =WHICH MONTH * 29 '* RT$ =TEMPORARY ANSWER * 30 '* VC =CODE ASCII VALUE * 31 '* X =LOOP VARIABLE * 32 '*************************** 33 'Also read PROCAL.DOC & PROCAL.FIL for instructions & sample outputs 34 MAXFILES=2:CLEAR3000:DEFINTA-Z 35 DIMCH$(6),IT$(150),DT(150),MO$(12),LM(12),JS$(7),PO(7),LC$(20) 36 NC$(1)="ALL PROJECTS" 37 L1$=".----------.----------.----------.----------.----------.----------.----------." 38 L2$="| SUNDAY | MONDAY | TUESDAY |WEDNESDAY | THURSDAY | FRIDAY | SATURDAY |" 39 L3$="| | | | | | | |" 40 FORX=1TO12:READMO$(X),LM(X):NEXT 41 FORX=1TO7:READJS$(X):NEXT 42 FORX=1TO7:READPO(X):NEXT 43 FORX=1TO20:LC$(X)=L3$:NEXT 44 CLS:PRINT"P R O J E C T C A L E N D A R" 45 PRINT:INPUT"Is NOTE.DO file sorted";RT$:GOSUB114:RT$=LEFT$(RT$,1) 46 IFRT$<>"Y"THENRUN"SORT.BA" 47 PRINT:INPUT"Which month (1-12)";QM$ 48 QM=VAL(QM$):IFQM<1ORQM>12THEN47 49 PRINT:PRINT"Which project?" 50 PRINT"(1) All":PRINT"(2) Specific project" 51 INPUTQC$:QC=VAL(QC$) 52 IFQC<1ORQC>2THEN51 53 ONQC GOTO55,62 54 '*** ALL PROJECTS EXCEPT PERSONAL ONES *** 55 OPEN"NOTE"FORINPUTAS1:PRINT:PRINT"Analyzing NOTE.DO...":PRINT 56 NI=0 57 IFEOF(1)THEN69 58 FORX=1TO6:INPUT#1,CH$(X):NEXT 59 IFVAL(LEFT$(CH$(1),2))=QM ANDCH$(6)<>"PERSONAL"THENNI=NI+1:IT$(NI)=CH$(3):DT(NI)=VAL(RIGHT$(CH$(1),2)) 60 GOTO57 61 '*** SPECIFIC PROJECT *** 62 PRINT:INPUT"Project name";RT$:GOSUB114:NC$(2)=RT$ 63 OPEN"NOTE"FORINPUTAS1:PRINT:PRINT"Analyzing NOTE.DO...":PRINT 64 NI=0 65 IFEOF(1)THEN69 66 FORX=1TO6:INPUT#1,CH$(X):NEXT 67 IFVAL(LEFT$(CH$(1),2))=QM ANDINSTR(CH$(6),NC$(2))>0THENNI=NI+1:IT$(NI)=CH$(3):DT(NI)=VAL(RIGHT$(CH$(1),2)) 68 GOTO65 69 CLOSE1 70 BEEP:PRINT"Which day of the week is the first of ";MO$(QM);" "; 71 INPUT"(1 to 7) i.e. 3 = Tuesday";PJ$ 72 PJ=VAL(PJ$):IFPJ<1ORPJ>7THEN71 73 CLS:PRINT"P R O J E C T C A L E N D A R" 74 PRINT:PRINT"for the month of: ";MO$(QM) 75 PRINT" starting on: ";JS$(PJ) 76 PRINT" project: ";NC$(QC) 77 PRINT:INPUT"Output dev:filename";PS$:IFPS$=""THENPS$="LPT:" 78 OPENPS$FOROUTPUTAS1 79 BEEP:PRINT:INPUT"Press [ENTER] when device is ready";RT$ 80 CLS:PRINT:PRINT"Processing in progress..." 81 PRINT#1,"P R O J E C T C A L E N D A R 82 PRINT#1,:PRINT#1,"Your name, title, company":PRINT#1, 83 PRINT#1,"P r o j e c t: ";NC$(QC) 84 PRINT#1, 85 PRINT#1,DATE$;" ";TIME$ 86 PRINT#1,:PRINT#1,SPACE$(35);MO$(QM);" 19";RIGHT$(DATE$,2) 87 PRINT#1,:PRINT#1,L2$ 88 PRINT#1,L1$ 89 DR=1:PP=PO(PJ) 90 PL=1:CE$=STR$(DR):GOSUB125:PL=PL+1 91 GOSUB120 92 IFCE$<>"NO"THENGOSUB125:PL=PL+1:GOTO91 93 IFMLLM(QM)THENGOSUB129:GOTO97 95 PP=PP+11:IFPP>68THENGOSUB129:PP=2:ML=1:GOTO90 96 GOTO90 97 PRINT#1,:PRINT#1,MO$(QM) 98 ONQC GOTO100,106 99 '*** DAILY DETAILS / ALL PROJECTS *** 100 OPEN"NOTE"FORINPUTAS2:PRINT:PRINT"Analyzing once again NOTE.DO...":PRINT 101 IFEOF(2)THEN111 102 FORX=1TO6:INPUT#2,CH$(X):NEXT 103 IFVAL(LEFT$(CH$(1),2))=QM ANDCH$(6)<>"PERSONAL"THENPRINT#1,RIGHT$(CH$(1),2);" -> ";:PRINT#1,LEFT$(CH$(2)+SPACE$(12),12);LEFT$(CH$(3)+SPACE$(11),11);CH$(4);" [";CH$(5);"] - (";CH$(6);")" 104 GOTO101 105 '*** DAILY DETAILS / SPECIFIC PROJECT *** 106 OPEN"NOTE"FORINPUTAS2:PRINT:PRINT"Analyzing once again NOTE.DO...":PRINT 107 IFEOF(2)THEN111 108 FORX=1TO6:INPUT#2,CH$(X):NEXT 109 IFVAL(LEFT$(CH$(1),2))=QM ANDINSTR(CH$(6),NC$(2))>0THENPRINT#1,RIGHT$(CH$(1),2);" -> ";:PRINT#1,LEFT$(CH$(2)+SPACE$(12),12);:PRINT#1,LEFT$(CH$(3)+SPACE$(11),11);CH$(4);" [";CH$(5);"]" 110 GOTO107 111 PRINT#1,:PRINT#1,NC$(QC);" ";DATE$;" ";TIME$:CLOSE:BEEP:BEEP:MENU 112 '*** END OF PROGRAM *** 113 '*** CAPITALS CONVERSION *** 114 FORX=1TOLEN(RT$) 115 CA$=MID$(RT$,X,1):VC=ASC(CA$) 116 IFVC>96ANDVC<123THENMID$(RT$,X)=CHR$(VC-32) 117 NEXT 118 RETURN 119 '*** DAY SEARCH *** 120 FORX=1TONI 121 IFDT(X)=DR THENCE$=IT$(X):IT$(X)="":DT(X)=0:X=NI 122 NEXT 123 RETURN 124 '*** INSERT CELL *** 125 MID$(LC$(PL),PP)=CE$ 126 CE$="NO" 127 RETURN 128 '*** PRINT ENTIRE WEEK *** 129 FORX=1TOML:PRINT#1,LC$(X):NEXT 130 PRINT#1,L3$:PRINT#1,L3$:PRINT#1,L1$ 131 PL=1:FORX=1TO20:LC$(X)=L3$:NEXT 132 RETURN 133 DATA JANUARY,31,FEBRUARY,28,MARCH,31,APRIL,30,MAY,31,JUNE,30,JULY,31,AUGUST,31,SEPTEMBER,30,OCTOBER,31,NOVEMBER,30,DECEMBER,31 134 DATA SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY 135 DATA 2,13,24,35,46,57,68