home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 22
/
CD_ASCQ_22_0695.iso
/
win
/
fr
/
ectbarre
/
copyfile.ect
< prev
next >
Wrap
Text File
|
1995-03-21
|
2KB
|
91 lines
REM COPYFILE (C) 1995 ESCOT-SEP Christophe
REM Initialisation ...
REM Creation d'un fichier temporaire contenant les noms des fichiers a copier
$A=GETDIR( )
$A=CAT($A,$\COPY.TMP)
!C=CREAT($A)
REM HandleFile == Handle sur le fichier contenant la liste des fichiers a copier
DEFINE($HandleFile,!C)
REM !B = Nbr de fichiers a copier
!B=!0
REM Repertoire ou seront copies les fichiers, par defaut A:
$Z=$A:
REM Selection des fichiers a copier
:SELECT
$B=OPENFILEDLG($Selectionnez les fichiers a copier,$All Files|*.*|,TRUE)
IF[LEN($B)]!=!0
GOTO($:TRAITE_SELECTION)
REM Selection avortee
MESSAGE($Information,$Selection annulee,INFORMATION)
GOTO($:NOUVEAUX)
:TRAITE_SELECTION
!G=FINDRCHR($B,!$ )
IF[!G]!=!-1
GOTO($:PLUSIEUR)
REM un seul fichier
WRITE(HandleFile,$B)
!B+=!1
GOTO($:AUTRE)
:PLUSIEUR
REM plusieurs fichiers, reconstruire le nom complet pour chacun
REM $E = Repertoire, $F = Fichier
$E=TOKEN($B,$ )
:NEXT_FILE
$F = TOKEN($B,$ )
IF[LEN($B)]==!0
GOTO($:ECRIT)
$G=CAT($E,$\)
$G=CAT($G,$F)
WRITE(HandleFile,$G)
!B+=!1
GOTO($:NEXT_FILE)
:ECRIT
$G=CAT($E,$\)
$G=CAT($G,$F)
WRITE(HandleFile,$G)
FREE($G)
FREE($E)
FREE($F)
:AUTRE
IF[OUINON($Copie de Fichiers,$Voulez-Vous selectionner d'autres fichiers,QUESTION)]==IDOK
GOTO($:SELECT)
REM !B=Nbr de fichiers a copier, HandleFile=fichier temporaire
REM Debut de la boucle de sauvegarde
:DEBUT
SSEEK(HandleFile,!0)
!A=!0
:SUIVANT
REM $B = Nom complet du fichier a copier
$B = READ(HandleFile)
REM Trouver le nom canonique ( sans le repertoire )
!L=LEN($B)
!J=FINDRCHR($B,!$\)
IF[!J]==!-1
GOTO($:COPY_FILE)
!L-=!J
!L-=!1
$D=RIGHT($B,!L)
:COPY_FILE
REM $D==Nom du fichier , $E = Nom complet du fichier en sortie
$E=CAT($Z,$\)
$E=CAT($E,$D)
COPY($B,$E,!0)
REM rend la main a windows pendant 5 secondes , la macro fonctionne en arriere-plan
PAUSE(!50)
!A+=!1
IF[!A]>!B
GOTO($:FIN)
GOTO($:SUIVANT)
:FIN
REM tous les fichiers ont etes copies
IF[OUINON($Copie,$Voulez-vous copiez a nouveau ces fichier,QUESTION)]==IDOK
GOTO($:DEBUT)
:NOUVEAUX
IF[OUINON($Copie,$Voulez_vous selectionner de nouveaux fichiers,QUESTION)]==IDOK
GOTO($:SELECT)
CLOSE(HandleFile)
REM Effacer le fichier contenant la liste des fichiers
:EFFACER
DEL($A)
END()