home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / aminet / ph_progs.lha / PH_PROGS.AMOS / File_Copy.ACC / File_Copy.amosSourceCode
AMOS Source Code  |  1993-06-02  |  2KB  |  104 lines

  1. '
  2. 'File Copier  - By Paul Hickman 10/4/1993
  3. '
  4. Screen Open 0,640,60,2,Hires : Palette 0,$ADF : Curs Off : Cls 
  5. S$=Fsel$("","","Select Source File")
  6. If S$<>""
  7.    Repeat 
  8.    D$=Fsel$("","","Select Dest Dir (Set Dir)","Or Filename to Rename To")
  9.    If D$=""
  10.       If Instr(S$,"/")=0
  11.          D$=Dir$+Mid$(S$,Instr(S$,":")+1)
  12.       Else 
  13.          A$=S$
  14.          While Instr(A$,"/")>0
  15.             A$=Mid$(A$,Instr(A$,"/")+1)
  16.          Wend 
  17.          D$=Dir$+A$
  18.       End If 
  19.    End If 
  20.    Until S$<>D$
  21.    If Not Exist(S$)
  22.       Repeat 
  23.       Cls 
  24.       Centre "Cannot Find File:" : Print 
  25.       Centre S$ : Print 
  26.       MOUSEYN
  27.       Until Exist(S$)
  28.    End If 
  29.    On Error Proc ERRHANDLE
  30.    Repeat 
  31.    ERRFREE=True : STAGE=1
  32.    Open In 1,S$ : L=Lof(1) : Close 1
  33.    Until ERRFREE
  34.    If L=0
  35.       Centre "Fatal Error: Length Of Source File is 0"
  36.       End 
  37.    End If 
  38. '
  39.    STAGE=2
  40. '
  41.    Repeat 
  42.    ERRFREE=True
  43.    Reserve As Work 15,L
  44.    Until ERRFREE=True
  45. '
  46.    STAGE=3
  47. '
  48.    Repeat 
  49.    ERRFREE=True
  50.    Bload S$,Start(15)
  51.    Until ERRFREE=True
  52. '
  53.    STAGE=4
  54. '
  55.    If Exist(D$)
  56.       Cls : Centre "Warning - Desination File Already Exists:" : Print 
  57.       Centre D$ : Print : Print 
  58.       Centre "Left Mouse: Overwrite   Right Mouse : Abort Copy"
  59.       Repeat : Until Mouse Key=0
  60.       Repeat : Until Mouse Key>0
  61.       If Mouse Key=2
  62.          Erase 15 : End 
  63.       End If 
  64.    End If 
  65. '
  66.    STAGE=5
  67. '
  68.    Bsave D$,Start(15) To Start(15)+Length(15)
  69.    Erase 15
  70. End If 
  71. '
  72. Procedure ERRHANDLE
  73. Shared STAGE,ERRFREE,S$,D$
  74. If STAGE=1
  75.    Cls : Centre "Error In Finding Length Of Source File:" : Print 
  76.    Centre S$ : Print 
  77.    MOUSEYN
  78. End If 
  79. If STAGE=2
  80.    Cls : Centre "Cannot Reserve Enough Memory To Hold Copy Of Source File:" : Print 
  81.    Centre S$ : Print 
  82.    MOUSEYN
  83. End If 
  84. If STAGE=3
  85.    Cls : Centre "Error In Reading Source File:" : Print 
  86.    Centre S$ : Print 
  87.    MOUSEYN
  88. End If 
  89. If STAGE=5
  90.    Cls : Centre "Error In Writing Destination File:" : Print 
  91.    Centre D$ : Print 
  92.    MOUSEYN
  93. End If 
  94. Resume 
  95. End Proc
  96. Procedure MOUSEYN
  97.       Print 
  98.       Centre "Left Mouse: Try Again   Right Mouse: Abort Copy" : Print 
  99.       Repeat : Until Mouse Key=0
  100.       Repeat : Until Mouse Key>0
  101.       If Mouse Key=2
  102.          End 
  103.       End If 
  104. End Proc