set window on set window layout 1,1,1 set window title "System de sauvegarde par copie (1.1)" show window show mouse disable escapekey sync on gosub start end
start: rem Définition des valeurs par défaut access$="E:\" rem Début de la boucle principale do cls 0 rem print Pour afficher des textes à l'écran (et pas pour imprimer) print "Utilitaire de sauvegarde de fichiers." print " " print "A pour sauvegarder, B pour définir un filtre, C pour changer le chemin de sortie, Q pour quitter." rem Demande une valeur à l'utilisateur et l'enregistre sous key$ input "Choisissez l'action à faire et pressez Enter > ",key$ rem Analyse des données reçues if key$<>"A" and key$<>"a" and key$<>"B" and key$<>"b" and key$<>"C" and key$<>"c" and key$<>"Q" and key$<>"q" then print "Veuillez choisir un choix valide." : sleep 2000 : gosub start rem La ligne précédente affiche un message d'erreur pendant 2 secondes puis retourne au début si le choix est invalide. rem Je n'ai pas oublié dans la ligne précédente à analyser les minuscules et majuscules. rem Une autre solution aurait été de transformer key$ en minuscules/majuscules pour raccourcir le code. rem Maintenant que l'analyse est faite, il faut utiliser les données. rem On va donc commencer par voir si le premier choix a été fait : if key$="a" or key$="A" then gosub save rem Si le choix était A ou a, alors on va sauvegarder. if key$="b" or key$="B" then gosub option1 rem De même pour B, on arrive au sous-menu option1 if key$="c" or key$="C" then gosub option2 rem De même pour C pour arriver au sous-menu option2 if key$="q" or key$="Q" then end rem Ici, on a vu que si le choix était de quitter, ce programme quittera sans avertir. rem Maintenant que les dérivations sont faites, on ferme la boucle par mesure de sécurité (ce qui va nous sauver, vous le verrez si vous exécutez ce code quand on aura fini). loop return
option1:
do
cls 0
print "Menu Filtrages des fichiers"
print " "
input "Veuillez entrer un nom de fichiers à exclure ou '/' pour quitter",next$
rem Là, on va créer un tableau nommé exclude$ pouvant contenir 255x1 données, soit 255 :p
dim exclude$(255,1)
rem On analyse les données...
if next$="/\" or next$=chr$(34)+"/\"+chr$(34) then exit
rem Lors de cette analyse de données, on a fait retourner au menu principal l'utilisateur sur sa demande
rem en quittant la boucle avec exit.
rem Maintenant, on remplit le tableau à l'aide d'une autre boucle : la for, to, next
for nb#=1 to 255
rem On analyse si la place est libre
if exclude$(nb#,1)="" then exclude$(nb#,1)=next$ : exit
rem On remplit la place seulement si elle est libre puis on sort de la boucle.
next nb#
rem Mais... et si le tableau était plein ?!?
rem Et bien vous savez comment analyser des données maintenant, bonne chance ^^
rem Donc maintenant on ferme la boucle
loop
rem Et on signale au compilateur que la sous-fonction s'arrête là, pour qu'il puisse retourner au menu principal.
return
option2: do cls 0 print "Changer la sortie de copie." print " " print "Chemin de sortie courant : "+access$ input "Voulez-vous vraiment changer le chemin d'accès ? (o : oui / n : non) >",choice$ if choice$<>"o" and choice$<>"O" and choice$<>"oui" and choice$<>"Oui" and choice$<>"OUI" and choice$<>"n" and choice$<>"N" and choice$<>"non" and choice$<>"Non" and choice$<>"NON" print "Choix invalide." sleep 2000 gosub option2 endif if choice$="o" or choice$="O" or choice$="oui" or choice$="Oui" or choice$="OUI" input "Veuillez entrer un nouveau chemin d'accès >",access$ else exit endif loop return
save:
cls 0
print "System de sauvegarde par copie"
print " "
print "Source : "+get dir$()
print "Destination : "+access$
print "Voulez-vous vraiment copier le dossier"
input "en cours vers "+access$+" ? (o : oui / n : non)>",choice$
if choice$<>"o" and choice$<>"O" and choice$<>"oui" and choice$<>"Oui" and choice$<>"OUI" and choice$<>"n" and choice$<>"N" and choice$<>"non" and choice$<>"Non" and choice$<>"NON"
print "Choix invalide."
sleep 2000
gosub save
endif
rem Fermeture d'un éventuel fichier ouvert.
if file open(1)=1 then close file 1
rem Suppression d'un éventuel fichier de même nom déjà existant.
if file exist("code.bat")=1 then delete file "code.bat"
rem Création et ouverture d'un fichier Batch (.bat)
open to write 1,"code.bat"
rem Ecriture du code.
write string 1,"@ echo off"
write string 1,"cd "+get dir$()
write string 1,"xcopy "+chr$(34)+get dir$()+chr$(34)+" "+chr$(34)+access$+chr$(34)+" /s /c /q /g /h /x /y"
write string 1,"exit"
close file 1
rem Maintenant que le code est créé, on l'exécute...
execute file get dir$()+"\code.bat", "", get dir$(), 0
rem Il n'est pas sûr à 100% que cette opération fonctionne :s
rem Notre application va attendre que la copie soit terminée avant de continuer.
rem Ne seront copiés que les fichiers et sous-dossiers du répertoire actuel du code DarkBASIC.
print "Quand la copie sera terminée, vous pourrez continuer. Utilisez CTRL+C dans la fenêtre"
print "MS-BATCH (noire) pour stopper son exécution proprement."
sync
rem Le bloc suivant va permettre d'attendre une réaction de la part de l'utilisateur.
while scancode=0
endwhile
rem Et voilà, c'est la fin du code...
return
Autres Astuces dans la catégorie Dark Basic
| 20/09 18h47 | Liens utiles | Visual Basic |
| 21/07 11h53 | Comment débuter, quel langage? | Langages |
| 18/06 11h27 | Activer Aero sous Vista | Windows Vista |
| 23/10 13h26 | Logiciels de messagerie instantannée | Messagerie instantanée |
| 09/03 02h02 | Programmation En Dark Basic ! | 0 |
| 25/08 20h12 | Tutoriel visual basic 2008 express | 3 |
| 22/08 15h48 | Freebox V4 pas de bouquet basic | 1 |
| 18/08 19h43 | Alone in the dark | 2 |
| 15/08 01h33 | Sortie DVD de Batman THE DARK KNIGHT en VF | 11 |
![]() | Visual Basic 6 Runtime (VB6 DLL) - Le Runtime Visual Basic 6 contient l'ensemble des librairies (DLL) nécessaires pour exécuter des programmes écrits en... | Catégorie: Librairies (DLL) Licence: Freeware/gratuit |
![]() | Visual Basic Express 2005 - Le langage de programmation Visual Basic est historiquement dans les gènes de la société Microsoft. Avec plus de 30.000... | Catégorie: Visual Basic Licence: Freeware/gratuit |
![]() | Copernic Agent Basic - Copernic est un logiciel très utile permettant de faire des recherches sur de nombreux moteurs simultanément. Il... | Catégorie: Navigateurs Licence: Freeware/gratuit |
![]() | Visual Basic Express - Visual Basic Express 2008 est la version gratuite de Visual Basic 2008, contenant toutes les fonctionnalités de base du... | Catégorie: Visual Basic Licence: Freeware/gratuit |