Page 1 sur 1

[R] Renommer un fichier

Posté : mar. 20 déc. 2011 13:57
par amouna98
Bonjour,

J’ai un GUI ou je rentre plusieurs info, je choisis un fichier et je choisis un dossier
Je veux pouvoir enregistré une copie de ce fichier (quelque soit son type .docx, xlsx....) dans le dossier choisis. Comment je peux faire
En plus j'arrive pas à renommer des fichiers en xlsx en utilisant ExcelSaveAs !!!

Re: [..] renommer un fichier

Posté : mar. 20 déc. 2011 14:32
par DimVar
amouna98 a écrit :Comment je peux faire
Commence par nous poster ce que tu as déjà fait, et préciser où tu bloques.

Re: [..] renommer un fichier

Posté : mar. 20 déc. 2011 14:34
par TommyDDR
Un renommage de fichier n'est qu'un déplacement de fichier où la destination est le même dossier dont le nom de fichier change.

Re: [..] renommer un fichier

Posté : mer. 21 déc. 2011 11:07
par amouna98
TommyDDR a écrit :Un renommage de fichier n'est qu'un déplacement de fichier où la destination est le même dossier dont le nom de fichier change.
DimVar a écrit : Commence par nous poster ce que tu as déjà fait, et préciser où tu bloques.

Code : Tout sélectionner

#Include <String.au3>
#include <GUIConstantsEx.au3>
#include <ComboConstants.au3>
 #include <Excel.au3>
_Main()

Func _Main()
    
    ;variables Locals
;~ $source = @ScriptDir & "\000_Template_Projet" ,
    Local $BTNEXIT, $MSG, $BTNOK  , $BTNImport,$BTNEnregistrer
    Local $file,$NOM,$Prenom,$Service,$folder,$varFile,$varFolder,$version,$TYPE,$redacteur
    Local $i=0, $result="",$sFilePath="",$oExcel=""
    Local $ligne=16,$CService=2,$CtypeDoc=4,$Cversion=7,$Cindice=8,$Credacteur=9,$Cdate=10,$Ctext=11,$Cnomdoc=13,$sDate =  @MDAY & "/" & @MON & "/" & @YEAR 
GUICreate("test ", 555, 250, 100, 100)  ; will create a dialog box
    GUICtrlCreateLabel("céer/modifier un fichier :", 10, 5,120,18)
    
GUICtrlCreateGroup("fichier ", 10, 25, 260, 190)
    GUICtrlCreateLabel("importer fichier  : ", 20, 45, 80, 18)
    $file = GUICtrlCreateInput("", 100, 45 , 140,18)
    $BTNImport = GUICtrlCreateButton("...", 240, 45, 18, 18)
    
    GUICtrlCreateGroup("", -99, -99, 1, 1)  ;close group

GUICtrlCreateGroup("Redacteur ", 280, 25, 260, 100)
    GUICtrlCreateLabel("NOM : ", 300, 45, 80, 18)
    $NOM = GUICtrlCreateInput("toto", 350, 45 , 140,18)
    
    GUICtrlCreateLabel("Prenom  : ",300,  70, 50, 18)
    $Prenom = GUICtrlCreateInput("tata", 350, 70 , 140,18)
    

GUICtrlCreateGroup("localisation ", 280, 130, 260, 65)
    GUICtrlCreateLabel("enregistrer dans :", 300, 155, 90, 18)
    $folder = GUICtrlCreateInput("", 390, 155 , 110,18)
    $BTNEnregistrer=GUICtrlCreateButton("...", 500, 155, 18, 18)
    GUICtrlCreateGroup("", -99, -99, 1, 1)  ;close group

;Buttons
    $BTNOK = GUICtrlCreateButton("&OK", 120, 220, 100)
    GUICtrlSetTip(-1, "Save")  
    $BTNEXIT = GUICtrlCreateButton("&Exit", 300, 220, 100)
    GUICtrlSetTip(-1, "Quit the program")
  

    GUISetState() ; will display an empty dialog box


    While 1
        $i=0
        $MSG = GUIGetMsg()
        Select

            Case $MSG = $GUI_EVENT_CLOSE Or $MSG = $BTNEXIT
                Exit
            Case $MSG = $BTNImport
                $var = FileOpenDialog("choisissez le fichier", @ScriptDir & "\", "All (*.*)" , 1 + 2 )

                If @error Then
                    MsgBox(4096,"","No File(s) chosen")
                Else
                    $varFile = StringReplace($var, "|", @CRLF)
                    MsgBox(4096,"","You chose " & $var)
                    
                    $file = GUICtrlCreateInput($var,  100, 45 , 140,18)

                EndIf

            Case $MSG = $BTNEnregistrer
                
                $varFolder=FileSelectFolder("Choose a folder.", @ScriptDir)
                $folder = GUICtrlCreateInput($varFolder,  390, 155 , 110,18)


            Case $MSG = $BTNOK
                If GUICtrlRead($file)=""  Then
                    MsgBox(0,"","Error : vous devez importer un fichier")
                    $i-=1
                ElseIf GUICtrlRead($folder)="" Then 
                    MsgBox(0,"","Error : vous devez choisir un repertoire")
                    $i-=1
                ElseIf GUICtrlRead($NOM)="" or GUICtrlRead($Prenom)="" Then 
                    MsgBox(0,"","Error : vous devez entrer votre nom et votre prenom")
                    $i-=1
                Else
                    $nom=GUICtrlRead($NOM) & GUICtrlRead($Prenom)                   
                    $xlsxFile=GUICtrlRead($folder) & "\" & $nom

                EndIf
                ;coppier et renommer le fichier
                If $i=0 Then
                    Exit
                EndIf

        EndSelect

    WEnd
EndFunc   ;==>_Main

 
Voila mon code. je récupère un fichier et je dois l'enregistrer dans un autre endroit en le renommant.

Re: [..] Renommer un fichier

Posté : mer. 21 déc. 2011 11:39
par TT22

Code : Tout sélectionner

FileMove("Ton\fichier\d'origine.ext","Nouvel\emplacement\de\ton\fichier.ext")

Re: [..] Renommer un fichier

Posté : mer. 21 déc. 2011 11:42
par DimVar
Si button OK, alors filecopy.
Je vois pas où tu bloques... :oops:

Re: [..] Renommer un fichier

Posté : mer. 21 déc. 2011 11:57
par amouna98
DimVar a écrit :Si button OK, alors filecopy.
Je vois pas où tu bloques... :oops:
est ce que filecopy renomme le fichier ?????
pour les fichiers excel j'ai ça

Code : Tout sélectionner

Func renomer_fichier($File,$nouveauNom,$repertoire_destination)
Local $xlsxFile

    $oExcel = _ExcelBookOpen($File)
    If @error = 1 Then
        MsgBox(0, "Error!", "Unable to Create the Excel Object")

    ElseIf @error = 2 Then
        MsgBox(0, "Error!", $xlsxFile & " File does not exist ")
    Else
        
        $xlsxFile=$repertoire_destination & "\" & $nouveauNom
    EndIf

    _ExcelBookSaveAs($oExcel, $xlsxFile , "xls")
    _ExcelBookClose($oExcel, 1, 0) ;This method will save then Close the file, without any of the normal prompts, regardless of changes

EndFunc
 

Re: [..] Renommer un fichier

Posté : mer. 21 déc. 2011 12:03
par TommyDDR
amouna98 a écrit :est ce que filecopy renomme le fichier ?????
TommyDDR a écrit :Un renommage de fichier n'est qu'un déplacement de fichier où la destination est le même dossier dont le nom de fichier change.
Que dire de plus...
Lisez l'aide du FileCopy / FileMove !
Vous verrez que dans les deux cas vous devez renseigner le fichier source et celui de destination, rien ne vous empêche de changer le nom dans la destination...

Parfois il faut savoir trouver la motivation pour aller lire l'aide.

Re: [..] Renommer un fichier

Posté : mer. 21 déc. 2011 12:06
par DimVar
amouna98 a écrit : est ce que filecopy renomme le fichier ?????
Un cp d'oeil à l'aide peut etre .... :wink:

Re: [..] Renommer un fichier

Posté : mer. 21 déc. 2011 12:08
par sylvanie
amouna98 a écrit : est ce que filecopy renomme le fichier ?????
Elle est sérieuse cette question ? Parce que là un simple cous d'oeuil dans l'aide y répond.
Toute fonction de copie de fichier de l'histoire de l’informatique renomme la copie si on inclut le nom dans le destination.

Sinon pour le simple renommage, là effectivement Autoit à une carence, on est obligé de faire un filemove

Re: [..] Renommer un fichier

Posté : mer. 21 déc. 2011 15:02
par amouna98
Bon je me demande est ce que vous avez compris mon problème
filemove et filecopy demande de rentrer l'extension du fichier. La est mon problème !!!!.
Mon problème c'est que ca dépond du fichier choisis à partir du GUI, je me demandais est ce qu’on peut changer le nom sans calculer l’extension !!!
Exemple filemove:
(j'utilise l'aide puisque vous en faites référence )
FileMove("C:\foo.au3", "D:\mydir\bak.au3")
Il faut préciser que c'est un .au3
mon problème c'est que le fichier source va être choisis donc je sais pas est ce que c'est un .txt ou .xls ou autre (voir mon code dans le msg d’avant avec le GUI)
J’ai pensé a récupérer l'extension et la remettre mais c'est lourd c'est pour ca que j'ai demandé de l'aide !!!!

Re: [..] Renommer un fichier

Posté : mer. 21 déc. 2011 15:05
par amouna98
TommyDDR a écrit :
amouna98 a écrit :est ce que filecopy renomme le fichier ?????
TommyDDR a écrit :Un renommage de fichier n'est qu'un déplacement de fichier où la destination est le même dossier dont le nom de fichier change.
Que dire de plus...
Lisez l'aide du FileCopy / FileMove !
Vous verrez que dans les deux cas vous devez renseigner le fichier source et celui de destination, rien ne vous empêche de changer le nom dans la destination...

Parfois il faut savoir trouver la motivation pour aller lire l'aide.
et comment tu fais si tu n'as pas l'extension du fichier !!!!

Re: [..] Renommer un fichier

Posté : mer. 21 déc. 2011 15:10
par amouna98
sylvanie a écrit :
amouna98 a écrit : est ce que filecopy renomme le fichier ?????
Elle est sérieuse cette question ? Parce que là un simple cous d'oeuil dans l'aide y répond.
Toute fonction de copie de fichier de l'histoire de l’informatique renomme la copie si on inclut le nom dans le destination.

Sinon pour le simple renommage, là effectivement Autoit à une carence, on est obligé de faire un filemove
pour renommer avec fileMove ou autre fonction
IL FAUT AVOIR L'EXTENSION DU FICHIER NON???? et moi je veux qu'il garde la meme extension du fichier source sans que je sois obliger de la preciser
mon GUI permet d'importé n importe quel type de fichier et je dois changer just le nom on gardant la même extension je vois pas dans l'aide ou on explique cela ni dans filecopy ni dans filemove !!!!!!!!!!!

Re: [..] Renommer un fichier

Posté : mer. 21 déc. 2011 15:22
par Iste
L’extension est une partie du nom du fichier...
A vous d'ouvrir la doc et de rechercher comment la récupérer pour la recoller. (indice : "string")

Et merci d’éviter les multi post a l'avenir...

Re: [..] Renommer un fichier

Posté : mer. 21 déc. 2011 15:26
par sylvanie
exple de récupération dynamique de l'extention + copie:
► Afficher le texte

Re: [..] Renommer un fichier

Posté : mer. 21 déc. 2011 15:39
par DimVar
Tu n'as pas à te soucier de l'extension puisque tu mets des noms de variables pour ton filemove ou filecopy.

Autrement dit :
► Afficher le texte
PS : Pour le param options du fileopendialog, tu peux additionner les valeurs (1 +2, tu peux mettre 3)

Re: [..] Renommer un fichier

Posté : jeu. 22 déc. 2011 14:26
par amouna98
Merci a vous tous :D