home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a113 / 1.img / HELP.BAS < prev    next >
Encoding:
BASIC Source File  |  1987-03-30  |  5.1 KB  |  55 lines

  1. 10 REM <<HELP.BAS>> 1987.3.24  [create HELP.TIT and HELP.TXT from HELP.DBS]
  2. 20 DIM W$(127),L$(100),T$(50):DEFINT A-Y:DEFDBL Z:BELL$=CHR$(7)+CHR$(7)+CHR$(7)
  3. 30 CLS:PRINT"Create REFERENCE about dBASE III or III PLUS from HELP.DBS for print":LOCATE 5
  4. 40 OPEN"HELP.DBS" AS 1 LEN=1:FIELD 1,1 AS D$:GET 1:D=ASC(D$):GET 1
  5. 50 IF D=215 AND ASC(D$)=10 THEN W$(56)="dBASE III PLUS":W$(48)="^End":WJ$="`":CC1=6:CC2=152:ELSE IF D=162 AND ASC(D$)=7 THEN W$(56)="dBASE III":W$(48)="~~~~":WJ$="&":CC1=4:CC2=162:ELSE PRINT"      HELP.DBS is bad !"+BELL$:SYSTEM
  6. 60 FOR I=0 TO 47:W$(I)=WJ$+CHR$(I):NEXT I:FOR I=53 TO 55:READ W$(I):NEXT I:FOR I=57 TO 64:READ W$(I):NEXT I:FOR I=65 TO 127:W$(I)=WJ$+CHR$(I):NEXT
  7. 70 DATA " Syntax      :  "," Description :  "," Example     :  "," See also    :  ","","^S","&<","","Esc","PgUp/PgDn","Enter"
  8. 80 GET 1:C0=ASC(D$):C0$=RIGHT$(STR$(C0),3):CR$=CHR$(13)+CHR$(10):FOR I=1 TO 100:CRL$=CRL$+CR$:NEXT I
  9. 90 PRINT"        "+LEFT$(W$(56)+" ****",15)+"*** Print parameters":PRINT:PRINT
  10. 100 INPUT"        Contents  <Com.&Fuc./ ALL>  [C] : ",CONTENT$:CONTENT$=LEFT$(CONTENT$,1):IF CONTENT$<>"A" AND CONTENT$<>"a" THEN C1=CC1:C2=CC2:GOTO 130
  11. 110 PRINT"         First Item NO.  <1-"+C0$+">    [1] : ";:INPUT "",C$:C1=(VAL(C$)-1)MOD C0:IF C1<0 THEN C1=0
  12. 120 PRINT"         Last  Item NO.  <1-"+C0$+">  ["+C0$+"] : ";:INPUT "",C$:C2=(VAL(C$)-1)MOD C0:IF C2<0 THEN C2=C0-1
  13. 130 INPUT"        Control for double word width   : ",DW$
  14. 140 INPUT"        Control for normal word width   : ",NW$
  15. 150 DW=2:IF DW$="" OR NW$="" THEN DW$=CHR$(14):NW$=CHR$(15):GOTO 180
  16. 160 IF DW$=NW$ THEN DW$="":NW$="":DW=1:GOTO 180
  17. 170 IF VAL(DW$)>0 OR VAL(NW$)>0 THEN DW$=CHR$(VAL(DW$)):NW$=CHR$(VAL(NW$)) ELSE DW$=CHR$(27)+DW$:NW$=CHR$(27)+NW$
  18. 180 INPUT"        Line numbers between Items  [4] : ",CRN$
  19. 190 CRN=VAL(CRN$) MOD 50:IF CRN<1 THEN CRN=4:CRN$=LEFT$(CRL$,6) ELSE CRN$=LEFT$(CRL$,2*CRN-2)
  20. 200 INPUT"        Left printer margin <0-99>  [0] : ",MG$
  21. 210 MG$=SPACE$(ABS(VAL(MG$))MOD 100)
  22. 220 INPUT"        Eject mode  <Not/Lf/Ff>     [F] : ",PF$
  23. 230 PF$=LEFT$(PF$,1):IF PF$="N" OR PF$="n" THEN PZ=30000:GOTO 270
  24. 240 INPUT"        First page NO. <Not/1-500>  [1] : ",X$:IF LEFT$(X$,1)="N" OR LEFT$(X$,1)="n" THEN PS=0 ELSE PS=VAL(X$) MOD 500:IF PS=0 THEN PS=1
  25. 250 INPUT"        Line numbers in a page     [66] : ",X$
  26. 260 PZ=VAL(X$)-3:IF PZ=-3 THEN PZ=63
  27. 270 INPUT"        Create File  <.TXT>      [HELP] : ",TXTFILE$
  28. 280 IF LEFT$(TXTFILE$,1)<"A" THEN TXTFILE$="HELP"
  29. 290 ZBUFFSIZE=10240:PN=PS-1:LN=PZ:HEAD$=LEFT$("["+W$(56)+"]       ",16)
  30. 300 GET 1,7+4*C1:ZRL=ASC(D$):GET 1:ZR=ASC(D$):ZRL=ZRL+256#*ZR:GET 1:ZR=ASC(D$):ZRL=ZRL+65536#*ZR+2:CLOSE 1:ZR1=INT((ZRL-1)/ZBUFFSIZE):ZRL=ZRL-1-ZR1*ZBUFFSIZE
  31. 310 OPEN TXTFILE$+".TXT" AS 2:IF LOF(2)>0 THEN PRINT:PRINT"        "+TXTFILE$+".TXT already exists , overwrite it ? [Y/N] "+BELL$;:INPUT "",X$:IF X$<>"Y" AND X$<>"y" THEN SYSTEM
  32. 320 CLOSE:OPEN"O",2,TXTFILE$+".TXT":PRINT# 2,CHR$(27)+"A";
  33. 330 OPEN"HELP.DBS" AS 1 LEN=ZBUFFSIZE:FIELD 1,ZBUFFSIZE AS R$:GET 1,ZR1+1:D$=MID$(R$,ZRL+1)
  34. 340 CLS:FOR I=C1 TO C2
  35. 350 D=INSTR(D$,CHR$(0)+"@"):IF D=0 THEN GET 1:D$=D$+R$:D=INSTR(D$,CHR$(0)+"@")
  36. 360 DJ=INSTR(D$,CHR$(0)+"="):IF DJ>0 AND DJ<D AND CONTENT$<>"A" AND CONTENT$<>"a" THEN 510
  37. 370 IF ASC(D$)=0 THEN I=I-1:GOTO 510
  38. 380 L2=INSTR(D$,CHR$(0)):L$(0)=LEFT$(D$,L2-1):N=0
  39. 390 WHILE LEFT$(L$(N),1)<>"%"
  40. 400 N=N+1:L1=L2+1:L2=INSTR(L1,D$,CHR$(0)):L$(N)=MID$(D$,L1,L2-L1)
  41. 410 IF LEFT$(L$(N),1)="=" THEN N=N-1:L2=INSTR(L2+1,D$,CHR$(0)):GOTO 440
  42. 420 LJ=INSTR(L$(N),WJ$):WHILE LJ>0:L$(N)=LEFT$(L$(N),LJ-1)+W$(ASC(MID$(L$(N),LJ+1,1)))+MID$(L$(N),LJ+2):LJ=INSTR(LJ+2,L$(N),WJ$):WEND
  43. 430 LJ=INSTR(L$(N),CHR$(9)):WHILE LJ>0:L$=LEFT$(L$(N),LJ-1):L$(N)=L$+SPACE$(8*(LEN(L$)\8)+8-LEN(L$))+MID$(L$(N),LJ+1):LJ=INSTR(LJ+1,L$(N),CHR$(9)):WEND
  44. 440 WEND:PRINT L$(0),:IF L$(1)="~~~~" THEN L$(1)=L$(2):L$(2)=""
  45. 450 IF L$(0)=MID$(L$(1),2) THEN LHEAD$="" ELSE LHEAD$=" ["+MID$(L$(1),2)+"]"
  46. 460 LN=LN+N+1+CRN:IF LN<=PZ THEN 480 ELSE IF START$="" THEN START$="!":GOTO 470 ELSE IF PF$<>"L" AND PF$<>"l" THEN PRINT# 2,CHR$(12);ELSE LN=PZ+1-LN+N+1+CRN:IF LN<1 THEN PRINT# 2,"" ELSE PRINT# 2,LEFT$(CRL$,2*LN);
  47. 470 LN=N+1+CRN:PN=PN+1:IF PS>0 THEN PRINT# 2,MG$+HEAD$+SPACE$(54)+"Page";PN;CR$ ELSE PRINT# 2,CR$
  48. 480 START$="!":TN=CN MOD 48:CN=CN+1:IF PS>0 THEN TNN=PN ELSE TNN=CN
  49. 490 T$(TN)=T$(TN)+LEFT$(L$(0)+" ...................",18)+LEFT$(RIGHT$(STR$(TNN),3)+"          ",11)
  50. 500 PRINT# 2,MG$+DW$+L$(0)+NW$+LHEAD$:PRINT# 2,MG$+STRING$(DW*LEN(L$(0)),61)+CR$:FOR J=2 TO N-1:PRINT# 2,MG$+L$(J):NEXT J:PRINT# 2,CRN$
  51. 510 D$=MID$(D$,D+2):NEXT I:PRINT# 2,CHR$(12):CLOSE
  52. 520 OPEN"O",2,TXTFILE$+".TIT":PRINT# 2,CHR$(27)+"A";MG$+W$(56);CR$+CR$+CR$+MG$+SPACE$(32)+DW$+"CONTENTS"+NW$+CR$+CR$+CR$:FOR I=0 TO 47:PRINT# 2,MG$+LEFT$(T$(I),79):NEXT I:IF PF$<>"L" AND PF$<>"l" THEN PRINT# 2,CHR$(12);ELSE PRINT# 2,LEFT$(CRL$,20)
  53. 530 IF CN>144 THEN PRINT# 2,MG$+W$(56)+CR$+CR$+CR$+MG$+SPACE$(32)+DW$+"CONTENTS"+NW$+CR$+CR$+CR$:FOR I=0 TO 47:PRINT# 2,MG$+MID$(T$(I),88,79):NEXT I:IF PF$<>"L" AND PF$<>"l" THEN PRINT# 2,CHR$(12);ELSE PRINT# 2,LEFT$(CRL$,20)
  54. 540 CLS:LOCATE 6:PRINT"     "+TXTFILE$+".TIT and "+TXTFILE$+".TXT have deen created , you can TYPE them to print"+BELL$:PRINT:SYSTEM
  55.