home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / club100 / utl / utl19.ba < prev    next >
Text File  |  2006-10-19  |  4KB  |  78 lines

  1. 0 'UTL19.BA - BY PHIL WHEELER
  2. 1 'CLUB 100 LIBRARY - 415/939-1246 BBS,    937-5039 NEWSLETTER, 932-8856 VOICE
  3. 2 CLS:ONERRORGOTO10:PRINT:FILES:PRINT@280,"Name Kill Filn Sort Repl Dbas Bank Menu";:KEYON
  4. 3 ONKEYGOSUB4,5,13,51,26,6,22,10:A3$=INKEY$:IFA3$=CHR$(13)THEN10ELSE3
  5. 4 CLS:PRINT:FILES:LINEINPUT"reNAME which file?:";A$:IFA$=""THEN2ELSELINEINPUT"as what file?:";B$:NAMEA$ASB$:GOTO4
  6. 5 CLS:PRINT:FILES:LINEINPUT"KILL which file?:";C$:IFC$=""THEN2ELSEKILLC$:GOTO5
  7. 6 CLS:PRINT:FILES:LINEINPUT"   DBASE File: *.DO <Caps!>: ";D$:IFD$=""THEN2
  8. 7 DEFINTA-Z:PR=1:PG!=0:FORN=0TO3:READX:POKEVARPTR(PG!)+N,X:NEXT
  9. 8 DATA235,195,116,91
  10. 9 FORI=1TOLEN(D$):POKE64984+I,ASC(MID$(D$,I,1)):NEXT:POKE64985+LEN(D$),0:CALLVARPTR(PG!),PR,64985
  11. 10 KEY8,"Menu"+CHR$(13)+CHR$(254)+CHR$(13)+CHR$(245)+CHR$(62)+CHR$(10)+CHR$(204)+CHR$(63)+CHR$(109)+CHR$(241)+CHR$(201)
  12. 11 MAXFILES=1:CLEAR256,MAXRAM:DATE$=LEFT$(DATE$,6)+"84"
  13. 12 A=64228:B=63066:POKEA,127:POKEA+1,248:POKEB,1:MENU
  14. 13 CLS:DEFINTA-Z:DEFSTRD-F:DIMF(23),A(23)
  15. 14 FORX=-1408TO-1639STEP-11:IFPEEK(X)THENFORZ=0TO7:F(Y)=F(Y)+CHR$(PEEK(X+3+Z)):NEXT:GOSUB21
  16. 15 NEXT:F(Y-1)="NonameBA":F(Y-2)="Paste BF":X=-1103:GOSUB21:Y=Y-1:X=Y\2
  17. 16 FORZ=0TOY-X:W=Z
  18. 17 IFA(W)>A(W+X)THENB=A(W):A(W)=A(W+X):A(W+X)=B:E=F(W):F(W)=F(W+X):F(W+X)=E:W=W-X:IFW>-1THEN17
  19. 18 NEXT:X=X\2:IFXTHEN16ELSEF(Y)="Reserved":F(Y+1)="File  BF":A(Y+1)=A(Y)+MAXRAM-HIMEM:Y=Y+2:A(Y)=A(Y-1)+MAXFILES*267:Z=0
  20. 19 CLS:FORW=ZTO15+Z:PRINT@(W-Z)*20,LEFT$(F(W),6)"."RIGHT$(F(W),2);:PRINTUSING" #####";A(W+1)-A(W);:IFW+1=YTHENW=98
  21. 20 NEXT:E=INPUT$(1):Z=W:IFW=99THENCLEAR:GOTO2ELSE19
  22. 21 A(Y)=PEEK(X+2)*256+PEEK(X+1)-65536:Y=Y+1:RETURN
  23. 22 C$="84/09/01":REM Enter C$= 3 months after batteries installed.
  24. 23 D$=RIGHT$(DATE$,2)+"/"+LEFT$(DATE$,5):IFD$<C$THEN25
  25. 24 CLS:PRINT@122,"WARNING - Change Bank 1 Batteries !!":FORX=1TO20:BEEP:FORY=1TO50:NEXTY,X
  26. 25 A$="":B=VARPTR(A$):POKE B,211:POKE B+1,128:POKE B+2,199:CALL B
  27. 26 SCREEN,0:CLEAR2000
  28. 27 MAXFILES=2:DEFINTA-Z:DEFSTRR-Z:U=CHR$(8):ONERRORGOTO10
  29. 28 CLS:PRINT:FILES:PRINT:INPUT"Name of .DO file";X:IFX=""THEN50
  30. 29 I=INSTR(X,"."):IFI=0THENX=X+".DO":Y="OLD.DO":Z="TEMP.DO":NAMEX$ASY:N=-1:I=0
  31. 30 S(I)="":CLS:PRINT@40,I+1;U;": Replace what? ";:LINEINPUTS(I):IFS(I)=""THEN36
  32. 31 PRINT@80,I+1;U": Replace it with? ";:LINEINPUTR(I)
  33. 32 IFR(I)=""THENPRINT@201,"Delete "S(I)":Sure?":GOTO33ELSE34
  34. 33 T=INKEY$:IFT="N"ORT="n"THENPRINT@200,SPACE$(80);:GOTO31ELSEIFT="Y"ORT="y"THEN34ELSE33
  35. 34 N=I:PRINT@292,"";:IFI<9THENPRINT" Another?";:GOTO35ELSEPRINT" 10 strings max.:Proceeding";:GOSUB49:GOTO37
  36. 35 T=INKEY$:IFT="Y"ORT="y"THENI=I+1::PRINT"";:GOTO30ELSEIFT="N"ORT="n"THEN37ELSE35
  37. 36 IFN<0THEN47ELSE30
  38. 37 FORI=0TON:CLS:PRINT@52," Working";I+1:OPENYFORINPUTAS1:OPENZFOROUTPUTAS2
  39. 38 IFEOF(1)THEN45
  40. 39 LINEINPUT#1,W:K=LEN(W)
  41. 40 J=INSTR(1,W,S(I)):IFJ=0THEN43
  42. 41 C(I)=-1:PRINT#2,LEFT$(W,J-1);R(I);
  43. 42 W=MID$(W,J+LEN(S(I))):GOTO40
  44. 43 IFK=255THENPRINT#2,W;ELSEPRINT#2,W
  45. 44 GOTO38
  46. 45 CLOSE:IFC(I)=0THENGOSUB48
  47. 46 KILLY:NAMEZ$ASY:NEXTI
  48. 47 NAMEY$ASX:GOTO2
  49. 48 CLS:BEEP:PRINT:PRINT"No ";S(I);" in ";X:GOSUB49:RETURN
  50. 49 FORA=1TO999:NEXT:RETURN
  51. 50 MAXFILES=1:GOTO2
  52. 51 CLS:MAXFILES=2:CLEAR2000:FILES:A$="Which file to sort: ":GOSUB66
  53. 52 INPUTF$:IFF$=""THEN2ELSEIFMID$(F$,LEN(F$)-2,1)<>"."THENF$=F$+".DO"
  54. 53 ONERRORGOTO10:A$="Lines in Header ":GOSUB66:INPUTM:OPENF$FORINPUTAS1:FORJ=1TOM+1:LINEINPUT#1,Z$:NEXT
  55. 54 CLS:PRINT"----.----1----.----2----.----3----.----4";:PRINTZ$
  56. 55 A$="Begin at position: ":GOSUB66:INPUTB:IFB=0THEN55
  57. 56 A$="End at position: ":GOSUB66:INPUTE:N=M+1
  58. 57 N=N+1
  59. 58 LINEINPUT#1,Z$:IFEOF(1)THEN59ELSE57
  60. 59 CLOSE:DIMD$(N):DIMY$(M):OPENF$FORINPUTAS1
  61. 60 IFM=0THEN62
  62. 61 FORJ=1TOM:LINEINPUT#1,Y$(J):NEXT
  63. 62 FORI=M+1TON:LINEINPUT#1,D$(I):NEXT:CLOSE1:GOSUB67:KILLF$:OPENF$FOROUTPUTAS1
  64. 63 IFM=0THEN65
  65. 64 FORJ=1TOM:PRINT#1,Y$(J):NEXT
  66. 65 FORI=M+1TON:PRINT#1,D$(I):NEXTI:CLOSE:GOTO2
  67. 66 PRINT@240,SPACE$(40);:PRINT@240,A$;:RETURN
  68. 67 Z5=N
  69. 68 Z5=INT(Z5/2):IFZ5=0THEN76
  70. 69 Z2=1:Z3=N-Z5
  71. 70 Z1=Z2
  72. 71 Z4=Z1+Z5
  73. 72 IF(MID$(D$(Z1),B,(E-B)+1))<(MID$(D$(Z4),B,(E-B)+1))THEN74ELSE73
  74. 73 Z6$=D$(Z1):D$(Z1)=D$(Z4):D$(Z4)=Z6$:Z1=Z1-Z5:IFZ1<1THEN74ELSE71
  75. 74 Z2=Z2+1
  76. 75 IFZ2>Z3THEN68ELSE70
  77. 76 RETURN
  78.