AutoIt Français

Nouveau forum : http://www.autoitscript.fr/
 
AccueilFAQRechercherS'enregistrerMembresGroupesConnexionhttp://www.autoitscript.fr

Partagez | 
 

 Interface d'aide au copier coller

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
hellboy_21
Membre avancé


Nombre de messages : 56
Date d'inscription : 10/11/2006

MessageSujet: Interface d'aide au copier coller   2006-11-10, 17:40

[b]dsl jarriv pas a indenter le code[/b]

#include
#NoTrayIcon

GUICreate("Copier / Couper",575,72,-1,-1,$WS_SYSMENU)
Opt("GUIOnEventMode", 1)

$lblCopierColler = GUICtrlCreateLabel("Vous désirez ",10,13)
$listeCopierColler = GUICtrlCreateCombo ("Copier", 75,10,60)
GUICtrlSetData($listeCopierColler,"Couper")
$lblFichierDossier = GUICtrlCreateLabel(" le ou les ",140,13)
$listeFichierDossier = GUICtrlCreateCombo ("Fichier(s)", 190,10,70)
GUICtrlSetData($listeFichierDossier,"Dossier")
$choix = GUICtrlCreateButton("choix",270,9,50,23)
GUICtrlSetOnEvent($choix,"FichierDossier")
$lblFichierDossier = GUICtrlCreateLabel(" vers le dossier ",325,13)
$parcourir = GUICtrlCreateButton("parcourir",405,9,60,23)
GUICtrlSetOnEvent($parcourir,"parcourir")
$lblGo = GUICtrlCreateLabel(" ==> ",480,13)
$go = GUICtrlCreateButton("Go !!!",520,9,40,23)
GUICtrlSetOnEvent($go,"go")

$var = ""
$varParcourir = ""

GUISetOnEvent($GUI_EVENT_CLOSE,"quitter")
GUISetState()

While 1

Wend

Func FichierDossier()
If GUICtrlRead($listeCopierColler) "Copier" And GUICtrlRead($listeCopierColler) "Couper" Then
MsgBox(48,"Erreur","Le choix dans la liste Copier/Couper est inconnu")
GUICtrlSetState($listeCopierColler,$GUI_FOCUS)
Else
If GUICtrlRead($listeFichierDossier) = "Fichier(s)" Then
$message = "Sélectionner le ou les fichier(s) à "&StringLower(GUICtrlRead($listeCopierColler))
$var = FileOpenDialog($message, @MyDocumentsDir, "Tous (*.*)",1 4)
Else
If GUICtrlRead($listeFichierDossier) = "Dossier" Then
$var = FileSelectFolder("Sélectionner le dossier à "&StringLower(GUICtrlRead($listeCopierColler)),"")
Else
MsgBox(48,"Erreur","Le choix dans la liste Fichier(s)/Dossier est inconnu")
GUICtrlSetState($listeFichierDossier,$GUI_FOCUS)
EndIf
EndIf
EndIf
EndFunc

Func parcourir()
$varParcourir = FileSelectFolder("Sélectionner le dossier de destination","")
EndFunc
Func go()
If $var "" Then
If $varParcourir "" Then
If GUICtrlRead($listeFichierDossier) = "Fichier(s)" Then
If GUICtrlRead($listeCopierColler) = "Copier" Then
$Tableau = StringSplit($var, "|")
For $i=2 to $Tableau[0]
FileCopy($Tableau[1]&"\"&$Tableau[$i],$varParcourir,1)
Next
MsgBox(64,StringLower(GUICtrlRead($listeCopierColler)&" => "&GUICtrlRead($listeFichierDossier)),'Tout a bien été copié vers le répertoire "'&$varParcourir&'"')
$var = ""
$varParcourir = ""
Else
If GUICtrlRead($listeCopierColler) = "Couper" Then
$Tableau = StringSplit($var, "|")
For $i=2 to $Tableau[0]
FileMove($Tableau[1]&"\"&$Tableau[$i],$varParcourir,1)
Next
MsgBox(64,StringLower(GUICtrlRead($listeCopierColler)&" => "&GUICtrlRead($listeFichierDossier)),'Tout a bien été coupé puis collé vers le répertoire "'&$varParcourir&'"')
$var = ""
$varParcourir = ""
Else
MsgBox(48,"Erreur","Le choix dans la liste Copier/Couper est inconnu")
GUICtrlSetState($listeCopierColler,$GUI_FOCUS)
EndIf
EndIf
Else
If GUICtrlRead($listeFichierDossier) = "Dossier" Then
If GUICtrlRead($listeCopierColler) = "Copier" Then
$Tableau = StringSplit($var, "\")
$nouveauChemin = $varParcourir&"\"&$Tableau[$Tableau[0]]
DirCreate($nouveauChemin)
DirCopy($var,$nouveauChemin,1)
MsgBox(64,StringLower(GUICtrlRead($listeCopierColler)&" => "&GUICtrlRead($listeFichierDossier)),'Le dossier "'&$var&'" a bien été copié vers le répertoire "'&$varParcourir&'"')
$var = ""
$varParcourir = ""
Else
If GUICtrlRead($listeCopierColler) = "Couper" Then
DirMove($var,$varParcourir,1)
DirRemove($var, 1)
MsgBox(64,StringLower(GUICtrlRead($listeCopierColler)&" => "&GUICtrlRead($listeFichierDossier)),'Le dossier "'&$var&'" a bien été coupé puis collé vers le répertoire "'&$varParcourir&'"')
$var = ""
$varParcourir = ""
Else
MsgBox(48,"Erreur","Le choix dans la liste Copier/Couper est inconnu")
GUICtrlSetState($listeCopierColler,$GUI_FOCUS)
EndIf
EndIf
Else
MsgBox(48,"Erreur","Le choix dans la liste Fichier(s)/Dossier est inconnu")
GUICtrlSetState($listeFichierDossier,$GUI_FOCUS)
EndIf
EndIf
Else
MsgBox(48,"Erreur","Vous devez sélectionner un dossier de destination")
EndIf
Else
MsgBox(48,"Erreur","Vous devez sélectionner un fichier ou un dossier à copier ou coller")
EndIf
EndFunc

Func quitter()
Exit
EndFunc
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
TerminAdminAtor
Admin
Admin


Nombre de messages : 234
Date d'inscription : 22/10/2006

MessageSujet: Re: Interface d'aide au copier coller   2006-11-10, 18:20

Oui c'est normal pour l'indentation il n'y a pas le même code au3 sur ce forum(peut-être on trouvera un moyen), cependant tu peux utiliser le code simple, c'est déjà un peux mieux.

Sinon il manquait quelques signes 'égal'(corrigé). L'interface est pas mal, mais ça ne marche pas chez moi car il y a toujours le message qu'on doit choisir un fichier ou dossier... ce que j'ai déjà fait!

Puis ce qui serait intéressant c'est de permettre de choisir plusieurs fichiers et dossiers, j'ai essayé en laissant la touche 'Ctrl' enfoncé mais ça marche pas.

[code]#include <GUIconstants.au3>
#NoTrayIcon
GUICreate("Copier / Couper",575,72,-1,-1,$WS_SYSMENU)
Opt("GUIOnEventMode", 1)
$lblCopierColler = GUICtrlCreateLabel("Vous désirez ",10,13)
$listeCopierColler = GUICtrlCreateCombo ("Copier", 75,10,60)
GUICtrlSetData($listeCopierColler,"Couper")
$lblFichierDossier = GUICtrlCreateLabel(" le ou les ",140,13)
$listeFichierDossier = GUICtrlCreateCombo ("Fichier(s)", 190,10,70)
GUICtrlSetData($listeFichierDossier,"Dossier")
$choix = GUICtrlCreateButton("choix",270,9,50,23)
GUICtrlSetOnEvent($choix,"FichierDossier")
$lblFichierDossier = GUICtrlCreateLabel(" vers le dossier ",325,13)
$parcourir = GUICtrlCreateButton("parcourir",405,9,60,23)
GUICtrlSetOnEvent($parcourir,"parcourir")
$lblGo = GUICtrlCreateLabel(" ==> ",480,13)
$go = GUICtrlCreateButton("Go !!!",520,9,40,23)
GUICtrlSetOnEvent($go,"go")
$var = ""
$varParcourir = ""
GUISetOnEvent($GUI_EVENT_CLOSE,"quitter")
GUISetState()
While 1
Wend
Func FichierDossier()
If GUICtrlRead($listeCopierColler)="Copier" And GUICtrlRead($listeCopierColler)="Couper" Then
MsgBox(48,"Erreur","Le choix dans la liste Copier/Couper est inconnu")
GUICtrlSetState($listeCopierColler,$GUI_FOCUS)
Else
If GUICtrlRead($listeFichierDossier) = "Fichier(s)" Then
$message = "Sélectionner le ou les fichier(s) à "&StringLower(GUICtrlRead($listeCopierColler))
$var = FileOpenDialog($message, @MyDocumentsDir, "Tous (*.*)",1,4)
Else
If GUICtrlRead($listeFichierDossier) = "Dossier" Then
$var = FileSelectFolder("Sélectionner le dossier à "&StringLower(GUICtrlRead($listeCopierColler)),"")
Else
MsgBox(48,"Erreur","Le choix dans la liste Fichier(s)/Dossier est inconnu")
GUICtrlSetState($listeFichierDossier,$GUI_FOCUS)
EndIf
EndIf
EndIf
EndFunc
Func parcourir()
$varParcourir = FileSelectFolder("Sélectionner le dossier de destination","")
EndFunc
Func go()
If $var="" Then
If $varParcourir="" Then
If GUICtrlRead($listeFichierDossier) = "Fichier(s)" Then
If GUICtrlRead($listeCopierColler) = "Copier" Then
$Tableau = StringSplit($var, "|")
For $i=2 to $Tableau[0]
FileCopy($Tableau[1]&"\"&$Tableau[$i],$varParcourir,1)
Next
MsgBox(64,StringLower(GUICtrlRead($listeCopierColler)&" => "&GUICtrlRead($listeFichierDossier)),'Tout a bien été copié vers le répertoire "'&$varParcourir&'"')
$var = ""
$varParcourir = ""
Else
If GUICtrlRead($listeCopierColler) = "Couper" Then
$Tableau = StringSplit($var, "|")
For $i=2 to $Tableau[0]
FileMove($Tableau[1]&"\"&$Tableau[$i],$varParcourir,1)
Next
MsgBox(64,StringLower(GUICtrlRead($listeCopierColler)&" => "&GUICtrlRead($listeFichierDossier)),'Tout a bien été coupé puis collé vers le répertoire "'&$varParcourir&'"')
$var = ""
$varParcourir = ""
Else
MsgBox(48,"Erreur","Le choix dans la liste Copier/Couper est inconnu")
GUICtrlSetState($listeCopierColler,$GUI_FOCUS)
EndIf
EndIf
Else
If GUICtrlRead($listeFichierDossier) = "Dossier" Then
If GUICtrlRead($listeCopierColler) = "Copier" Then
$Tableau = StringSplit($var, "\")
$nouveauChemin = $varParcourir&"\"&$Tableau[$Tableau[0]]
DirCreate($nouveauChemin)
DirCopy($var,$nouveauChemin,1)
MsgBox(64,StringLower(GUICtrlRead($listeCopierColler)&" => "&GUICtrlRead($listeFichierDossier)),'Le dossier "'&$var&'" a bien été copié vers le répertoire "'&$varParcourir&'"')
$var = ""
$varParcourir = ""
Else
If GUICtrlRead($listeCopierColler) = "Couper" Then
DirMove($var,$varParcourir,1)
DirRemove($var, 1)
MsgBox(64,StringLower(GUICtrlRead($listeCopierColler)&" => "&GUICtrlRead($listeFichierDossier)),'Le dossier "'&$var&'" a bien été coupé puis collé vers le répertoire "'&$varParcourir&'"')
$var = ""
$varParcourir = ""
Else
MsgBox(48,"Erreur","Le choix dans la liste Copier/Couper est inconnu")
GUICtrlSetState($listeCopierColler,$GUI_FOCUS)
EndIf
EndIf
Else
MsgBox(48,"Erreur","Le choix dans la liste Fichier(s)/Dossier est inconnu")
GUICtrlSetState($listeFichierDossier,$GUI_FOCUS)
EndIf
EndIf
Else
MsgBox(48,"Erreur","Vous devez sélectionner un dossier de destination")
EndIf
Else
MsgBox(48,"Erreur","Vous devez sélectionner un fichier ou un dossier à copier ou coller")
EndIf
EndFunc
Func quitter()
Exit
EndFunc[/code]
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://autoit-fr.realbb.net
TerminAdminAtor
Admin
Admin


Nombre de messages : 234
Date d'inscription : 22/10/2006

MessageSujet: Re: Interface d'aide au copier coller   2006-11-10, 18:36

Et je vois que tu utilise pleins de 'If', à la place tu pourrais simplifier en faisant 'If <..> And <...> And>....', petite astuce;)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://autoit-fr.realbb.net
hellboy_21
Membre avancé


Nombre de messages : 56
Date d'inscription : 10/11/2006

MessageSujet: Re: Interface d'aide au copier coller   2006-11-10, 20:21

c vrai qu'il y a pas mal de IF ms c pr mettre un message d'erreur permettant de cibler d'où vient vraiment l'erreur de l'utilisateur. D'autre part, il est possible de sélectionner plusieurs fichiers (uniquement d'un même dossier par contre) ms c qd mm possible ! pour les dossier par contre c vrai kon ne peu pas.... je laiss libre cour a tt ce ptit monde pr remettre tt ca a sa sauce ;-)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
TerminAdminAtor
Admin
Admin


Nombre de messages : 234
Date d'inscription : 22/10/2006

MessageSujet: Re: Interface d'aide au copier coller   2006-11-10, 22:45

Il faut quand même poster un script qui fonctionne!
Tu n'as même pas pu tester le script avec toutes les erreurs qu'il y a!
Déjà ça:
[code] If $var="" Then
If $varParcourir="" Then[/code]
qui devrait être :
[code] If Not $var="" Then
If Not $varParcourir="" Then[/code]
Et
[code]$Tableau = StringSplit($var, "|")[/code]
ne marche seulement lorsque plusieurs fichiers sont sélectionnés, quand il y a un seul ça ne marche pas et la boucle [code]For $i=2 to $Tableau[0][/code] ne s'éxecute pas!
Solution:[code]If Not StringInStr($var,'|')=0 Then
$Tableau = StringSplit($var, "|")
For $i=2 to $Tableau[0]
FileCopy($Tableau[1]&"\"&$Tableau[$i],$varParcourir,1)
Next
Else
FileCopy($var,$varParcourir,1)
EndIf[/code]

Pour sélectionner plusieurs fichier [code]$var = FileOpenDialog($message, @MyDocumentsDir, "Tous (*.*)",1,4)[/code] ne marche pas il y a une erreur sur les arguments=>[code]$var = FileOpenDialog($message, @MyDocumentsDir, "Tous (*.*)",5)[/code](4+1=5)

Après plusieurs test et corrections voilà enfin quelque chose de potable, il reste plus qu'à amener des améliorations, par exemple rendre le tout graphique (plus grande fenêtre l'arbre des dossier en visible... ) pour une gestion plus facile et rapide.

Voilà le tout corrigé:
[code]#include <GUIconstants.au3>
#NoTrayIcon
GUICreate("Copier / Couper",575,72,-1,-1,$WS_SYSMENU)
Opt("GUIOnEventMode", 1)
$lblCopierColler = GUICtrlCreateLabel("Vous désirez ",10,13)
$listeCopierColler = GUICtrlCreateCombo ("Copier", 75,10,60)
GUICtrlSetData($listeCopierColler,"Couper")
$lblFichierDossier = GUICtrlCreateLabel(" le ou les ",140,13)
$listeFichierDossier = GUICtrlCreateCombo ("Fichier(s)", 190,10,70)
GUICtrlSetData($listeFichierDossier,"Dossier")
$choix = GUICtrlCreateButton("choix",270,9,50,23)
GUICtrlSetOnEvent($choix,"FichierDossier")
$lblFichierDossier = GUICtrlCreateLabel(" vers le dossier ",325,13)
$parcourir = GUICtrlCreateButton("parcourir",405,9,60,23)
GUICtrlSetOnEvent($parcourir,"parcourir")
$lblGo = GUICtrlCreateLabel(" ==> ",480,13)
$go = GUICtrlCreateButton("Go !!!",520,9,40,23)
GUICtrlSetOnEvent($go,"go")
$var = ""
$varParcourir = ""
GUISetOnEvent($GUI_EVENT_CLOSE,"quitter")
GUISetState()
While 1
Wend
Func FichierDossier()
If GUICtrlRead($listeCopierColler)="Copier" And GUICtrlRead($listeCopierColler)="Couper" Then
MsgBox(48,"Erreur","Le choix dans la liste Copier/Couper est inconnu")
GUICtrlSetState($listeCopierColler,$GUI_FOCUS)
Else
If GUICtrlRead($listeFichierDossier) = "Fichier(s)" Then
$message = "Sélectionner le ou les fichier(s) à "&StringLower(GUICtrlRead($listeCopierColler))
$var = FileOpenDialog($message, @MyDocumentsDir, "Tous (*.*)",5)
Else
If GUICtrlRead($listeFichierDossier) = "Dossier" Then
$var = FileSelectFolder("Sélectionner le dossier à "&StringLower(GUICtrlRead($listeCopierColler)),"")
Else
MsgBox(48,"Erreur","Le choix dans la liste Fichier(s)/Dossier est inconnu")
GUICtrlSetState($listeFichierDossier,$GUI_FOCUS)
EndIf
EndIf
EndIf
EndFunc
Func parcourir()
$varParcourir = FileSelectFolder("Sélectionner le dossier de destination","")
EndFunc
Func go()
If Not $var="" Then
If Not $varParcourir="" Then
If GUICtrlRead($listeFichierDossier) = "Fichier(s)" Then
If GUICtrlRead($listeCopierColler) = "Copier" Then
If Not StringInStr($var,'|')=0 Then
$Tableau = StringSplit($var, "|")
For $i=2 to $Tableau[0]
FileCopy($Tableau[1]&"\"&$Tableau[$i],$varParcourir,1)
Next
Else
FileCopy($var,$varParcourir,1)
EndIf
MsgBox(64,StringLower(GUICtrlRead($listeCopierColler)&" => "&GUICtrlRead($listeFichierDossier)),'Tout a bien été copié vers le répertoire "'&$varParcourir&'"')
$var = ""
$varParcourir = ""
Else
If GUICtrlRead($listeCopierColler) = "Couper" Then
If Not StringInStr($var,'|')=0 Then
$Tableau = StringSplit($var, "|")
For $i=2 to $Tableau[0]
FileMove($Tableau[1]&"\"&$Tableau[$i],$varParcourir,1)
Next
Else
FileMove($var,$varParcourir,1)
EndIf
MsgBox(64,StringLower(GUICtrlRead($listeCopierColler)&" => "&GUICtrlRead($listeFichierDossier)),'Tout a bien été coupé puis collé vers le répertoire "'&$varParcourir&'"')
$var = ""
$varParcourir = ""
Else
MsgBox(48,"Erreur","Le choix dans la liste Copier/Couper est inconnu")
GUICtrlSetState($listeCopierColler,$GUI_FOCUS)
EndIf
EndIf
Else
If GUICtrlRead($listeFichierDossier) = "Dossier" Then
If GUICtrlRead($listeCopierColler) = "Copier" Then
$Tableau = StringSplit($var, "\")
$nouveauChemin = $varParcourir&"\"&$Tableau[$Tableau[0]]
DirCreate($nouveauChemin)
DirCopy($var,$nouveauChemin,1)
MsgBox(64,StringLower(GUICtrlRead($listeCopierColler)&" => "&GUICtrlRead($listeFichierDossier)),'Le dossier "'&$var&'" a bien été copié vers le répertoire "'&$varParcourir&'"')
$var = ""
$varParcourir = ""
Else
If GUICtrlRead($listeCopierColler) = "Couper" Then
DirMove($var,$varParcourir,1)
DirRemove($var, 1)
MsgBox(64,StringLower(GUICtrlRead($listeCopierColler)&" => "&GUICtrlRead($listeFichierDossier)),'Le dossier "'&$var&'" a bien été coupé puis collé vers le répertoire "'&$varParcourir&'"')
$var = ""
$varParcourir = ""
Else
MsgBox(48,"Erreur","Le choix dans la liste Copier/Couper est inconnu")
GUICtrlSetState($listeCopierColler,$GUI_FOCUS)
EndIf
EndIf
Else
MsgBox(48,"Erreur","Le choix dans la liste Fichier(s)/Dossier est inconnu")
GUICtrlSetState($listeFichierDossier,$GUI_FOCUS)
EndIf
EndIf
Else
MsgBox(48,"Erreur","Vous devez sélectionner un dossier de destination")
EndIf
Else
MsgBox(48,"Erreur","Vous devez sélectionner un fichier ou un dossier à copier ou coller")
EndIf
EndFunc
Func quitter()
Exit
EndFunc[/code]
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://autoit-fr.realbb.net
hellboy_21
Membre avancé


Nombre de messages : 56
Date d'inscription : 10/11/2006

MessageSujet: Re: Interface d'aide au copier coller   2006-11-10, 23:47

C'est comme les rédactions ça, quand tu y fait tu ne vois pas tro tes fautes par moment, c'est pour ça que c'est bien que d'autres le voient.
en même temps j'aurais peut-être dû me dépecher un peu moin pour le faire, ça m'aurais éviter ces erreurs :-)
En tout cas merci de l'avoir corrigé mais surtout merci pour ceux qui débutent ça leur évitera de faire des erreur dès le début.
EDIT: mode sms /off
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
TerminAdminAtor
Admin
Admin


Nombre de messages : 234
Date d'inscription : 22/10/2006

MessageSujet: Re: Interface d'aide au copier coller   2006-11-10, 23:53

De rien, mais évite le sms
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://autoit-fr.realbb.net
hellboy_21
Membre avancé


Nombre de messages : 56
Date d'inscription : 10/11/2006

MessageSujet: Re: Interface d'aide au copier coller   2006-11-11, 00:00

bien bien mister TerminAdminAtor. En tout cas c une bonne idée que tu as eu de faire un forum où les gens peuvent poster des script car même s'il y a quelques petites erreurs, ca permet au personnes d'apprendre à utiliser Autoit ou de réagir sur différents développements ce qui permet de donner de nouvelles idées, de corriger ou d'améliorer le script...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Interface d'aide au copier coller   Aujourd'hui à 17:12

Revenir en haut Aller en bas
 
Interface d'aide au copier coller
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Résolu] Problème pour faire un copier/coller (suite post sur yahoo)
» probleme de copier / coller action
» Comment copier-coller un bouton ?
» Pb Mise en page copier/coller
» Interdir les copier-coller des page du forum

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
AutoIt Français :: AutoIt v3 :: Scripts-
Sauter vers: