home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / CLIPPER / MISC / ENTRY.ZIP / FORM.BAS < prev    next >
Encoding:
BASIC Source File  |  1988-04-06  |  3.7 KB  |  103 lines

  1. 10 ON ERROR GOTO 560
  2. 20 DIM R(50),C(50),P$(50),T(50),S(50),F$(50)
  3. 30 CLS : KEY OFF
  4. 40 INPUT "FORMAT FILE ";I$ : PRINT : INPUT "DATA FILE   ";O$
  5. 50 CLS : OPEN I$ FOR INPUT AS 1
  6. 60 D$=DATE$ : D$=LEFT$(D$,2)+"/"+MID$(D$,4,2)
  7. 70 T$=TIME$ : T$=LEFT$(T$,2)+":"+MID$(T$,4,2)
  8. 80 IF EOF(1) THEN 100
  9. 90 I=I+1 : INPUT #1,R(I),C(I),P$(I),T(I),S(I) : GOTO 80
  10. 100 LOCATE 25,1 : PRINT D$;" ";T$; : LOCATE 25,35 : PRINT O$;
  11. 110 FOR J=1 TO I
  12. 120 IF T(J)<3 THEN LOCATE R(J),C(J) : PRINT P$(J);" ";STRING$(S(J),"_");
  13. 130 IF T(J)=3 THEN F$(J)=P$(J) : Y%=Y%+LEN(P$(J))
  14. 140 IF T(J)=4 THEN F$(J)=LEFT$(T$,2)+RIGHT$(T$,2) : TT$=F$(J) : Y%=Y%+4
  15. 150 IF T(J)=5 THEN F$(J)=LEFT$(D$,2)+RIGHT$(D$,2) : DD$=F$(J) : Y%=Y%+4
  16. 160 IF (T(J)=1 OR T(J)=2) AND F1=0 THEN F=J : F1=J
  17. 170 IF T(J)=1 OR T(J)=2 THEN F9=J : Y%=Y%+S(J)
  18. 180 NEXT J
  19. 190 OPEN "R",2,O$,Y% : FIELD 2,Y% AS Z$
  20. 200 W%=LOF(2)/Y% : Z%=1
  21. 210 GOSUB 400
  22. 220 '
  23. 230 GOSUB 1020
  24. 240 GOSUB 770
  25. 250 GOSUB 580
  26. 260 K$=INKEY$ : IF K$="" THEN 260
  27. 270 IF K$=CHR$(0)+CHR$(81) THEN 870
  28. 280 IF K$=CHR$(0)+CHR$(73) THEN 920
  29. 290 IF K$=CHR$(8) AND V$<>"" THEN V$=LEFT$(V$,LEN(V$)-1) : LOCATE R1,POS(0)-1 : PRINT " "; : LOCATE R1,POS(0)-1 : GOTO 260
  30. 300 IF K$=CHR$(13) OR K$=CHR$(0)+CHR$(80) OR K$=CHR$(0)+CHR$(79) THEN GOSUB 610 : GOTO 250
  31. 310 IF K$=CHR$(0)+CHR$(117) THEN GOSUB 400 : GOTO 240
  32. 320 IF K$=CHR$(0)+CHR$(72) OR K$=CHR$(0)+CHR$(71) THEN GOSUB 690 : GOTO 250
  33. 330 IF K$=CHR$(27) THEN CLOSE : COLOR 7,0 : CLS : KEY ON : PRINT W%;" RECORDS ON ";O$ : CHAIN "MENU.BAS"
  34. 340 IF T(F)=1 AND (K$<"0" OR K$>"9") THEN PRINT CHR$(7); : GOTO 260
  35. 350 IF K$<CHR$(32) OR K$>CHR$(126) THEN 260
  36. 360 V$=V$+K$ : PRINT K$;
  37. 370 IF LEN(V$)=S(F) THEN GOSUB 610 : GOTO 250
  38. 380 GOTO 260
  39. 390 '
  40. 400 GOSUB 1020
  41. 410 IF F0=0 THEN F0=1 : RETURN
  42. 420 COLOR 7,0 : L$=""
  43. 430 FOR J=1 TO I
  44. 440 IF T(J)=4 THEN F$(J)=TT$
  45. 450 IF T(J)=5 THEN F$(J)=DD$
  46. 460 IF T(J)=1 THEN L$=L$+RIGHT$(STRING$(S(J),"0")+F$(J),S(J))
  47. 470 IF T(J)=2 THEN L$=L$+LEFT$(F$(J)+SPACE$(S(J)),S(J))
  48. 480 IF T(J)>2 THEN L$=L$+F$(J)
  49. 490 IF T(J)=1 OR T(J)=2 THEN LOCATE R(J),C(J)+LEN(P$(J))+1 : PRINT STRING$(S(J),"_");
  50. 500 IF T(J)<3 THEN F$(J)=""
  51. 510 NEXT J
  52. 520 COLOR 0,7 : F=F1 : LSET Z$=L$ : PUT 2,Z% : IF Z%>W% THEN W%=Z%
  53. 530 GOSUB 1020
  54. 540 RETURN
  55. 550 '
  56. 560 CLOSE : COLOR 7,0 : CLS : PRINT "ERROR ";ERR;" AT ";ERL : KEY ON : END
  57. 570 '
  58. 580 R1=R(F) : C1=C(F)+LEN(P$(F))+1 : LOCATE R1,C1 : COLOR 0,7 : V$=""
  59. 590 PRINT LEFT$(F$(F)+SPACE$(S(F)),S(F)); : LOCATE R1,C1,1 : RETURN
  60. 600 '
  61. 610 IF V$<>"" THEN F$(F)=V$
  62. 620 LOCATE R1,C1 : COLOR 7,0 : PRINT F$(F);SPACE$(S(F)-LEN(F$(F))); : COLOR 0,7
  63. 630 IF K$=CHR$(0)+CHR$(79) THEN F=F9 : RETURN
  64. 640 IF F=F9 THEN F=F1 : RETURN
  65. 650 F=F+1
  66. 660 IF T(F)=1 OR T(F)=2 THEN RETURN
  67. 670 GOTO 640
  68. 680 '
  69. 690 IF V$<>"" THEN F$(F)=V$
  70. 700 LOCATE R1,C1 : COLOR 7,0 : PRINT F$(F);SPACE$(S(F)-LEN(F$(F))); : COLOR 0,7
  71. 710 IF K$=CHR$(0)+CHR$(71) THEN F=F1 : RETURN
  72. 720 IF F=F1 THEN RETURN
  73. 730 F=F-1
  74. 740 IF T(F)=1 OR T(F)=2 THEN RETURN
  75. 750 GOTO 720
  76. 760 '
  77. 770 IF Z%>W% THEN RETURN
  78. 780 GET 2,Z% : P=1 : COLOR 7,0
  79. 790 FOR J=1 TO I
  80. 800 IF T(J)=1 OR T(J)=2 THEN F$(J)=MID$(Z$,P,S(J)) : P=P+S(J)
  81. 810 IF T(J)>3 THEN F$(J)=MID$(Z$,P,4) : P=P+4
  82. 820 IF T(J)=3 THEN F$(J)=MID$(Z$,P,LEN(P$(J))) : P=P+LEN(P$(J))
  83. 830 IF T(J)>0 AND T(J)<3 THEN LOCATE R(J),C(J)+LEN(P$(J))+1 : PRINT F$(J);
  84. 840 NEXT J
  85. 850 F=F1 : RETURN
  86. 860 '
  87. 870 IF Z%<W% THEN Z%=Z%+1 : GOTO 230
  88. 880 IF Z%>W% THEN GOTO 230
  89. 890 IF Z%=W% THEN Z%=Z%+1 : GOSUB 950 : GOTO 230
  90. 900 GOTO 230
  91. 910 '
  92. 920 IF Z%>1 THEN Z%=Z%-1 : GOTO 230
  93. 930 GOTO 230
  94. 940 '
  95. 950 COLOR 7,0
  96. 960 FOR J=1 TO I
  97. 970 IF T(J)=1 OR T(J)=2 THEN LOCATE R(J),C(J)+LEN(P$(J))+1 : PRINT STRING$(S(J),"_"); : F$(J)=""
  98. 980 NEXT J
  99. 990 COLOR 0,7
  100. 1000 RETURN
  101. 1010 '
  102. 1020 COLOR 7,0 : LOCATE 25,73 : PRINT Z%;"-";W%; : COLOR 0,7 : RETURN
  103.