home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 3 / FREEWARE.BIN / oh_fm / townsfos / copy.bas next >
BASIC Source File  |  1980-01-02  |  2KB  |  73 lines

  1. 10000 '
  2. 10010 ' Copy : Copy a File
  3. 10020 '
  4. 10030 ' Filename "COPY.BAS"
  5. 10040 '
  6. 10050 ' Last Update 1989. 5.20 Version 1.01
  7. 10060 '
  8. 10070 '
  9. 10080 DEFINT A-Z
  10. 10090 OFLG=0
  11. 10100 SFL$="" : DFL$=""
  12. 10110 '
  13. 10120 IF ARGC>1 THEN *PARA
  14. 10130 PRINT : PRINT "***** Copy : Copy a File : Ver.1.01 *****"
  15. 10140 PRINT
  16. 10150 LINE INPUT "      Souece Filename ? ",SFL$:IF SFL$="" THEN *END_EXIT
  17. 10160 LINE INPUT " Destination Filename ? ",DFL$:IF DFL$="" THEN *END_EXIT
  18. 10170 GOTO *MAIN
  19. 10180 '
  20. 10190 *PARA
  21. 10200 FOR I=1 TO ARGC-1 : A$=ARGV$(I)
  22. 10210   IF A$="?" THEN *HELP
  23. 10220   IF A$="-o" OR A$="-O" THEN OFLG=-1 : GOTO *PA_2
  24. 10230   IF SFL$="" THEN SFL$=A$:GOTO *PA_2
  25. 10240   IF DFL$="" THEN DFL$=A$:GOTO *PA_2
  26. 10250   GOTO *PARA_ERR
  27. 10260 *PA_2:NEXT
  28. 10270 GOTO *MAIN
  29. 10280 '
  30. 10290 *HELP
  31. 10300 S_A$="\n***** Help Message for Copy *****\n\n":GOSUB *S_PUTS_E
  32. 10310 S_A$="    Copy : Copy a File\n":GOSUB *S_PUTS_E
  33. 10320 S_A$="    Usage : Copy <Source> <Destination> [-o]\n":GOSUB *S_PUTS_E
  34. 10330 S_A$="        -o Over Write\n":GOSUB *S_PUTS_E
  35. 10340 GOTO *END_EXIT
  36. 10350 '
  37. 10360 *PARA_ERR
  38. 10370 S_A$="@ Parameter Error !\n":GOSUB *S_PUTS_E
  39. 10380 '
  40. 10390 *END_EXIT
  41. 10400 IF ARGC=0 THEN END
  42. 10410 RETURN *S_T_RETURN
  43. 10420 '
  44. 10430 ' COPY MAIN
  45. 10440 '
  46. 10450 *MAIN
  47. 10460 P=INSTR(SFL$,":"):IF P>0 THEN SFL2$=LEFT$(SFL$,P)+"(1)"+MID$(SFL$,P+1)                               ELSE SFL2$="(1)"+SFL$
  48. 10470 P=INSTR(DFL$,":"):IF P>0 THEN DFL2$=LEFT$(DFL$,P)+"(1)"+MID$(DFL$,P+1)                               ELSE DFL2$="(1)"+DFL$
  49. 10480 '
  50. 10490 *RTY
  51. 10500 OPEN "I",#1,SFL$ : CLOSE #1 : OPEN "R",#1,SFL2$ : FIELD #1,1 AS D1$
  52. 10510 ON ERROR GOTO *COPY_ERROR
  53. 10520 OPEN "O",#2,DFL$ : CLOSE #2 : OPEN "R",#2,DFL2$ : FIELD #2,1 AS D2$
  54. 10530 S&=LOF(1) : IF S&=0 THEN *LOOP_END
  55. 10540 FOR I&=1 TO S&
  56. 10550    GET #1
  57. 10560    LSET D2$=D1$
  58. 10570    PUT #2
  59. 10580 NEXT
  60. 10590 CLOSE
  61. 10600 GOTO *END_EXIT
  62. 10610 '
  63. 10620 *COPY_ERROR
  64. 10630 IF ERR<>64 THEN *E_2
  65. 10640      IF OFLG THEN *E_3
  66. 10650 *E_1:PRINT "@ File Alreay Exist ! : Over Write (Y/N) ";
  67. 10660      INPUT A$ : IF A$="" OR A$="n" OR A$="N" THEN *END_EXIT
  68. 10670      IF A$<>"y" AND A$<>"Y" THEN *E_1
  69. 10680 *E_3:CLOSE : KILL DFL$ : RESUME *RTY
  70. 10690 *E_2
  71. 10700 S_ERR=ERR
  72. 10710 RESUME *END_EXIT
  73.