Page 1 sur 1

[R] Convertisseur d’extension

Posté : mer. 03 sept. 2008 07:43
par tinoudu01
Bonjours,

Actuellement en DUT informatique j’essaye de réaliser un petit programme me permettant de modifier une extension sur plusieurs fichiers dans un même répertoire.
Le script .bat fonctionne très bien (voir ci dessous), mais j’aurais aimé faire un joli programme .exe qui ouvre une fenêtre, demande un répertoire pour la modification d’extension, avec des petits boutons… blablabla un truc sympa quoi ^^ !
J’ai essayé tout seul mais mes connaissances en la matière sont très faibles…
Merci pour votre aide.

Antoine

Fichier .bat :

Code : Tout sélectionner

@echo off

set /p oldext= Ancienne extension : 
set /p newext= Nouvelle extension : 
if exist *.%oldext% (
      for %%a in (*.%oldext%) do ren %%a *.%newext%
   cls
   echo Les fichiers portant l'extension "%oldext%" on maintenant l'estension "%newext%".
) else (
echo Aucun fichier ne porte l'extension "%oldext%"
)
:end
pause

Re: [..] Convertisseur d’extension

Posté : mer. 03 sept. 2008 14:47
par timmalos
Voila ton script fait en Autoit:

Code : Tout sélectionner

#include <file.au3>
#include <date.au3>
;


$old_ext = ".jpg"
$new_ext = ".bmp"
$dir = FileSelectFolder ( "Selectionnez le dossier", "" , 7 , @ScriptDir )


FileChangeDir ( $dir )
; Shows the filenames of all files in the current directory.
$search = FileFindFirstFile("*"&$old_ext)  

; Check if the search was successful
If $search = -1 Then
    MsgBox(0, "Erreur", "Aucun fichier trouvé")
    Exit
EndIf

While 1
    $file = FileFindNextFile($search) 
    If @error Then ExitLoop
    
    $file2 = StringReplace ( $file, $old_ext, $new_ext)
    
    $ok = FileMove($file,$file2)
    If $ok = 1 then _FileWriteLog(@ScriptDir & "\renommage.log",":: OK : "&$file)
    If $ok = 0 then _FileWriteLog(@ScriptDir & "\renommage.log",":: ECHEC : "&$file)
WEnd

; Close the search handle
FileClose($search)

 
Avec creation d'un fichier Log, ce script peut être utile.
après, un petit coup de Koda et vous aurez votre belle Gui que vous souhaitez. Le plus chiant est la :)

Re: [..] Convertisseur d’extension

Posté : mer. 03 sept. 2008 17:20
par tinoudu01
Merci beaucoup pour ton aide !
Pourais tu m'en dire un peu plus sur :
timmalos a écrit : Avec creation d'un fichier Log, ce script peut être utile.
après, un petit coup de Koda et vous aurez votre belle Gui que vous souhaitez. Le plus chiant est la :)
Et aussi comment choisir sois meme son extension a l'execution du script ??
Merci !

Re: [..] Convertisseur d’extension

Posté : mer. 03 sept. 2008 21:18
par timmalos
tinoudu01 a écrit : Et aussi comment choisir sois meme son extension a l'execution du script ??
Merci !
Si j'avais Koda sous la main, je pourrai vous repondre en moins de 30 sec, mais j'ai la flemme de le dl.
(Koda est un createur d'interface telechargable ici qui permet de realiser des GUI très rapidement.)

Alors je vais vous repondre d'utiliser ce script : (je sais, le temps de reflechir j'aurai deja fini de dl koda... :lol: )

Code : Tout sélectionner

#include <file.au3>
#include <date.au3>
;


;$old_ext = ".jpg"
;$new_ext = ".bmp"

$old_ext = InputBox("Inserer l'extension des fichiers à modifier",".jpg")
$new_ext = InputBox("Inserer la nouvelle extension de vos fichiers",".bmp")
$dir = FileSelectFolder ( "Selectionnez le dossier", "" , 7 , @ScriptDir )


FileChangeDir ( $dir )
; Shows the filenames of all files in the current directory.
$search = FileFindFirstFile("*"&$old_ext)  

; Check if the search was successful
If $search = -1 Then
    MsgBox(0, "Erreur", "Aucun fichier trouvé")
    Exit
EndIf

While 1
    $file = FileFindNextFile($search) 
    If @error Then ExitLoop
    
    $file2 = StringReplace ( $file, $old_ext, $new_ext)
    
    $ok = FileMove($file,$file2)
    If $ok = 1 then _FileWriteLog(@ScriptDir & "\renommage.log",":: OK : "&$file)
    If $ok = 0 then _FileWriteLog(@ScriptDir & "\renommage.log",":: ECHEC : "&$file)
WEnd

; Close the search handle
FileClose($search)
 
Et le tour est joué :wink:

Pour
timmalos a écrit :Avec creation d'un fichier Log, ce script peut être utile.
après, un petit coup de Koda et vous aurez votre belle Gui que vous souhaitez. Le plus chiant est la
En m'etant très mal exprimé (sur ce point on est d'accord), je voulais simplement vous annoncer que ce script comprenait et gerait la creation des logs pour pouvoir s'y retrouver à la fin, et deuxiemement que si vous souhaitiez avoir une belle GUI avec plein de boutons, il faudra s'adresser à quelqu'un d'autre que moi pour l'obtenir, car je suis un BIG flemmard :), mais avec le lien que je vous ai donné ci-dessus et vos connaissances, peut etre y arriverez vous facilement :) En cas de soucis, la partie "Interface " du forum vous accueillera avec plaisir .
Cordialement, Tim

Re: [..] Convertisseur d’extension

Posté : jeu. 04 sept. 2008 08:10
par tinoudu01
timmalos a écrit : Alors je vais vous repondre d'utiliser ce script : (je sais, le temps de reflechir j'aurai deja fini de dl koda... :lol: )
Merci beaucoup pour toute ton aide ^^ ! J'aime beaucoup les flémards qui répondent aussi vite et bien !!
Je vais maintenant essayer koda comme tu me le conseil.

Merci

Antoine

Re: [..] Convertisseur d’extension

Posté : jeu. 04 sept. 2008 10:32
par ani
koda est intégré à scite :o (raccourci clavié ALT+M)

@timmalos
l'include date ne sert pas dans l'exemple :)

bonne continuation

Re: [..] Convertisseur d’extension

Posté : jeu. 04 sept. 2008 21:44
par timmalos
ani a écrit :koda est intégré à scite :o (raccourci clavié ALT+M)
En fait, en ce moment je change toutes les configs de mes 2 pcs, je passe sous linux, je partitionne, et j'ai plus rien d'installer, meme pas Scite (en fait , tous les scripts que j'envoie sur le forum en ce moment sont fait sous bloc - notes :lol: )
C'est poru ca que je voulais pas Dl Koda, car peut etre Wine allait encore buguer, et que je ne voulais pas reboot , enfin bref, j'ai preféré laissé ca a une autre personne :)
ani a écrit : @timmalos
l'include date ne sert pas dans l'exemple :)

bonne continuation
Au debut, avec la creation du fichier log, je voulais rajouter _Now() avant de me rendre compte qu'il etait deja fourni ( en quelque sorte ) avec _FileWriteLog
Et comme je suis sous le bloc -notes, je n'ai pas vu que j'avais oublié de l'enlever. Mea Culpe :)