[R] Renommer un fichier

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
amouna98
Niveau 5
Niveau 5
Messages : 127
Enregistré le : jeu. 15 juil. 2010 10:17
Status : Hors ligne

[R] Renommer un fichier

#1

Message 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 !!!
Modifié en dernier par amouna98 le jeu. 22 déc. 2011 14:26, modifié 1 fois.
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

Re: [..] renommer un fichier

#2

Message 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.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] renommer un fichier

#3

Message 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.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
amouna98
Niveau 5
Niveau 5
Messages : 127
Enregistré le : jeu. 15 juil. 2010 10:17
Status : Hors ligne

Re: [..] renommer un fichier

#4

Message 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.
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..] Renommer un fichier

#5

Message par TT22 »

Code : Tout sélectionner

FileMove("Ton\fichier\d'origine.ext","Nouvel\emplacement\de\ton\fichier.ext")
Cordialement,
TT22
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

Re: [..] Renommer un fichier

#6

Message par DimVar »

Si button OK, alors filecopy.
Je vois pas où tu bloques... :oops:
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
amouna98
Niveau 5
Niveau 5
Messages : 127
Enregistré le : jeu. 15 juil. 2010 10:17
Status : Hors ligne

Re: [..] Renommer un fichier

#7

Message 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
 
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Renommer un fichier

#8

Message 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.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

Re: [..] Renommer un fichier

#9

Message par DimVar »

amouna98 a écrit : est ce que filecopy renomme le fichier ?????
Un cp d'oeil à l'aide peut etre .... :wink:
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Renommer un fichier

#10

Message 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
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
amouna98
Niveau 5
Niveau 5
Messages : 127
Enregistré le : jeu. 15 juil. 2010 10:17
Status : Hors ligne

Re: [..] Renommer un fichier

#11

Message 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 !!!!
amouna98
Niveau 5
Niveau 5
Messages : 127
Enregistré le : jeu. 15 juil. 2010 10:17
Status : Hors ligne

Re: [..] Renommer un fichier

#12

Message 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 !!!!
amouna98
Niveau 5
Niveau 5
Messages : 127
Enregistré le : jeu. 15 juil. 2010 10:17
Status : Hors ligne

Re: [..] Renommer un fichier

#13

Message 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 !!!!!!!!!!!
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Renommer un fichier

#14

Message 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...
Signez ici
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Renommer un fichier

#15

Message par sylvanie »

exple de récupération dynamique de l'extention + copie:
► Afficher le texte
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

Re: [..] Renommer un fichier

#16

Message 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)
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
amouna98
Niveau 5
Niveau 5
Messages : 127
Enregistré le : jeu. 15 juil. 2010 10:17
Status : Hors ligne

Re: [..] Renommer un fichier

#17

Message par amouna98 »

Merci a vous tous :D
Répondre