Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Petit Utilitaire RenameArticles | |
| | Auteur | Message |
---|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Petit Utilitaire RenameArticles Mar 15 Nov 2016 - 13:10 | |
| Je me suis créé un petit utilitaire pour formater les noms de vos fichiers *.pdf. Il se lance depuis le menu contextuel et est lié au fichiers *.pdf. Voici le code pour ceux qui serait intéréssé : - Code:
-
application_title "Articles Rename" variables() constantes() labels() init() gui() rename() terminate end
' ------------------------------------------------------------------------------
sub variables() dim par0$,par1$,par2$ dim util$ dim no% end_sub
' ------------------------------------------------------------------------------
sub constantes() dim pan% : no%=no%+1 : pan%=no% dim alph1% : no%=no%+1 : alph1%=no% dim alph2% : no%=no%+1 : alph2%=no% dim alph3% : no%=no%+1 : alph3%=no% dim alph4% : no%=no%+1 : alph4%=no% dim pbar% : no%=no%+1 : pbar%=no% dim col_fd_R% : col_fd_R% = 255 dim col_fd_G% : col_fd_G% = 210 dim col_fd_B% : col_fd_B% = 140 dim col_txt_R% : col_txt_R% = 140 dim col_txt_G% : col_txt_G% = 0 dim col_txt_B% : col_txt_B% = 0 end_sub
' ------------------------------------------------------------------------------
sub labels() label L end_sub
' ------------------------------------------------------------------------------
sub init() par0$ = param_value$(0) par1$ = param_value$(1) par2$ = param_value$(2) end_sub
' ------------------------------------------------------------------------------
sub gui() dim_local h%,w%
border_hide 0 height 0,120 width 0,350 top 0,(screen_y-height(0))/2 left 0,(screen_x-width(0))/2
panel pan% full_space pan% h%=height(pan%) w%=width(pan%) color pan%,col_fd_R%,col_fd_G%,col_fd_B% alpha alph1% parent alph1%,pan% font_name alph1%,"Times" font_size alph1%,18 font_bold alph1% font_color alph1%,col_txt_R%,col_txt_G%,col_txt_B% top alph1%,5 caption alph1%,"Articles Rename" left alph1%,((w%-width(alph1%))/2)
alpha alph2% parent alph2%,pan% font_name alph2%,"Times" font_size alph2%,10 font_bold alph2% font_color alph2%,col_txt_R%,col_txt_G%,col_txt_B% top alph2%,40 caption alph2%,"Article" left alph2%,10 progress_bar pbar% parent pbar%,pan% top pbar%,60 left pbar%,10 width pbar%,w%-60 min pbar%,0 max pbar%,100 position pbar%,0 COLOR_PROGRESS_BAR(pbar%,col_txt_R%,col_txt_G%,col_txt_B%) alpha alph3% parent alph3%,pan% font_name alph3%,"Times" font_size alph3%,10 font_bold alph3% font_color alph3%,col_txt_R%,col_txt_G%,col_txt_B% top alph3%,60 caption alph3%,"0 %" left alph3%,(w%-width(alph3%))-10 alpha alph4% parent alph4%,pan% font_name alph4%,"Arial" font_size alph4%,8 font_bold alph4% font_color alph4%,col_txt_R%,col_txt_G%,col_txt_B% top alph4%,95 caption alph4%,"" left alph4%,((w%-width(alph4%))/2) end_sub
' ------------------------------------------------------------------------------
sub rename() dim_local f$,fl%,nf$,i%,l$,l2$,pbpos%,path$,ext$
path$=file_extract_path$(par2$)
f$=file_extract_name$(par2$) f$=left$(f$,len(f$)-4) L: if instr(f$,"par")=0 if message_input("Pas d' auteur !","Nom de l' auteur","")=1 f$=f$+"_par_"+message_text$ goto L else Message "Désolé !"+chr$(13)+"Sans nom d' auteur, le nom de fichier sera invalide"+chr$(13)+"Fermeture du programme..." exit_sub end_if end_if
ext$=file_extract_extension$(par2$) if ext$<>".pdf" Message "Ce fichier n' est pas au bon format pour le mag !" exit_sub end_if
fl%=len(f$) caption alph2%,f$ ' passe 1 mise en minuscule caption alph4%,"Passe 1 [ Mise en minuscules ]" left alph4%,((width(pan%)-width(alph4%))/2) display for i%=1 to fl% pbpos%=int((i%*100)/fl%) l$=mid$(f$,i%,1) l$=lower$(l$) nf$=nf$+l$ position pbar%,pbpos% caption alph3%,str$(pbpos%)+" %" left alph3%,(width(pan%)-width(alph3%))-10 display next i% f$=nf$ nf$="" pause 2000 position pbar%,0 caption alph3%,"0 %" left alph3%,(width(pan%)-width(alph3%))-10 display
' passe 2 suppression des accents caption alph4%,"Passe 2 [ Suppression des accents ]" left alph4%,((width(pan%)-width(alph4%))/2) display for i%=1 to fl% pbpos%=int((i%*100)/fl%) l$=mid$(f$,i%,1) if asc(l$)>223 and asc(l$)<230 : l$="a" : end_if if asc(l$)=231 : l$="c" : end_if if asc(l$)>231 and asc(l$)<236 : l$="e" : end_if if asc(l$)>235 and asc(l$)<240 : l$="i" : end_if if asc(l$)>239 and asc(l$)<247 : l$="o" : end_if if asc(l$)>248 and asc(l$)<253 : l$="u" : end_if nf$=nf$+l$ position pbar%,pbpos% caption alph3%,str$(pbpos%)+" %" left alph3%,(width(pan%)-width(alph3%))-10 display next i% f$=nf$ nf$="" pause 2000 position pbar%,0 caption alph3%,"0 %" left alph3%,(width(pan%)-width(alph3%))-10 display
' passe 3 suppression des espaces et apostrophes caption alph4%,"Passe 3 [ Suppression des espaces et apostrophes ]" left alph4%,((width(pan%)-width(alph4%))/2) display for i%=1 to fl% pbpos%=int((i%*100)/fl%) l$=mid$(f$,i%,1) if i%>1 : l2$=mid$(nf$,i%-1,1) : else : l2$="" : end_if if asc(l$)<97 or asc(l$)>122 if l2$=chr$(95) l$="" else l$=chr$(95) end_if end_if nf$=nf$+l$ position pbar%,pbpos% caption alph3%,str$(pbpos%)+" %" left alph3%,(width(pan%)-width(alph3%))-10 display next i% f$=nf$ nf$="" pause 2000 position pbar%,0 caption alph3%,"0 %" left alph3%,(width(pan%)-width(alph3%))-10 display
nf$=path$+f$+ext$ file_rename par2$,nf$ message "L' article :"+chr$(13)+par2$+chr$(13)+"a été renommé ainsi :"+chr$(13)+nf$ end_sub
' ------------------------------------------------------------------------------
sub COLOR_PROGRESS_BAR(nb%,r%,g%,b%) dim_local i,j,k%,my_library$,my_dll$,found% ' verifie si "user32" existe: my_dll$="user32" i=0 k%=0 found%=0 my_dll$=lower$(my_dll$) j=instr(my_dll$,".") : if j>0 then my_dll$=left$(my_dll$,j-1) repeat k%=k%+1 until library$(k%)="_" repeat i=i+1 my_library$=lower$(library$(i)) j=instr(my_library$,".") : if j>0 then my_library$=left$(my_library$,j-1) ' if my_library$=my_dll$ found%=1 exit_repeat end_if until i=32 ' charge la librairie et cré la commande si nécessaire if found%=0 library k%,my_dll$ ' print k%," : not found ",library$(k%) :' debug command "pb_color","SendMessageA",k%,"IIII","stdcall" else ' print i," : found ",library$(i) :' debug end_if ' colore la progress_bar pb_color handle(nb%),1033,0,(b%*65536)+(g%*256)+r% end_sub | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Petit Utilitaire RenameArticles Mar 15 Nov 2016 - 18:12 | |
| Ben, ça marche pô ligne 131: f$=left$(f$,len(f$)-4) erreur (52) Not correct string expression: Function call with negative value. A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Petit Utilitaire RenameArticles Mar 15 Nov 2016 - 18:18 | |
| Sûrement parce que f$ est vide avant le test. Un test à effectuer avant de continuer.. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 15 Nov 2016 - 19:32 | |
| L' utilitaire doit être en *.exe Puis il faut créer un sous menu dans le menu contextuel pour que celui s' affiche sur un clique droit sur un *.pdf. En cliquant sur le menu contextuel, le nom du fichier *.pdf est passé en paramètre à l' utilitaire qui passe le nom du fichier à la moulinette et renomme le fichier. f$=param_value$(2)Si tu lances l' utilitaire depuis l' éditeur, f$ est vide. De même si tu lances directement le *.exe.
Dernière édition par ygeronimi le Mar 15 Nov 2016 - 19:41, édité 1 fois | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Petit Utilitaire RenameArticles Mar 15 Nov 2016 - 19:41 | |
| Donc, fais un test et arrête le programme avec un message si la variable est vide... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 15 Nov 2016 - 19:43 | |
| Oui je vais en rajouter un ou peut être vais je faire pire encore... ...j' hésite... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Petit Utilitaire RenameArticles Mar 15 Nov 2016 - 19:45 | |
| YES !!!!!!!! Fais exploser une bombe ! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 15 Nov 2016 - 19:56 | |
| Pas de bombes, les ricains s' en chargent ! Nouveau code : - Code:
-
application_title "Articles Rename" variables() constantes() labels() init() gui() rename() terminate end
' ------------------------------------------------------------------------------
sub variables() dim par0$,par1$,par2$ dim util$ dim no% end_sub
' ------------------------------------------------------------------------------
sub constantes() dim pan% : no%=no%+1 : pan%=no% dim alph1% : no%=no%+1 : alph1%=no% dim alph2% : no%=no%+1 : alph2%=no% dim alph3% : no%=no%+1 : alph3%=no% dim alph4% : no%=no%+1 : alph4%=no% dim pbar% : no%=no%+1 : pbar%=no% dim odial% : no%=no%+1 : odial%=no% dim col_fd_R% : col_fd_R% = 255 dim col_fd_G% : col_fd_G% = 210 dim col_fd_B% : col_fd_B% = 140 dim col_txt_R% : col_txt_R% = 140 dim col_txt_G% : col_txt_G% = 0 dim col_txt_B% : col_txt_B% = 0 end_sub
' ------------------------------------------------------------------------------
sub labels() label L end_sub
' ------------------------------------------------------------------------------
sub init() par0$ = param_value$(0) par1$ = param_value$(1) par2$ = param_value$(2) end_sub
' ------------------------------------------------------------------------------
sub gui() dim_local h%,w%
border_hide 0 height 0,120 width 0,350 top 0,(screen_y-height(0))/2 left 0,(screen_x-width(0))/2
panel pan% full_space pan% h%=height(pan%) w%=width(pan%) color pan%,col_fd_R%,col_fd_G%,col_fd_B% alpha alph1% parent alph1%,pan% font_name alph1%,"Times" font_size alph1%,18 font_bold alph1% font_color alph1%,col_txt_R%,col_txt_G%,col_txt_B% top alph1%,5 caption alph1%,"Articles Rename" left alph1%,((w%-width(alph1%))/2)
alpha alph2% parent alph2%,pan% font_name alph2%,"Times" font_size alph2%,10 font_bold alph2% font_color alph2%,col_txt_R%,col_txt_G%,col_txt_B% top alph2%,40 caption alph2%,"Article" left alph2%,10 progress_bar pbar% parent pbar%,pan% top pbar%,60 left pbar%,10 width pbar%,w%-60 min pbar%,0 max pbar%,100 position pbar%,0 COLOR_PROGRESS_BAR(pbar%,col_txt_R%,col_txt_G%,col_txt_B%) alpha alph3% parent alph3%,pan% font_name alph3%,"Times" font_size alph3%,10 font_bold alph3% font_color alph3%,col_txt_R%,col_txt_G%,col_txt_B% top alph3%,60 caption alph3%,"0 %" left alph3%,(w%-width(alph3%))-10 alpha alph4% parent alph4%,pan% font_name alph4%,"Arial" font_size alph4%,8 font_bold alph4% font_color alph4%,col_txt_R%,col_txt_G%,col_txt_B% top alph4%,95 caption alph4%,"" left alph4%,((w%-width(alph4%))/2) end_sub
' ------------------------------------------------------------------------------
sub rename() dim_local f$,fl%,nf$,i%,l$,l2$,pbpos%,path$,ext$
path$=file_extract_path$(par2$)
if par2$="" Open_dialog Odial% dir_dialog Odial%,"C:\" filter Odial%,"*.pdf|*.pdf" par2$=file_name$(Odial%) delete Odial% if par2$<>"_" f$=file_extract_name$(par2$) f$=left$(f$,len(f$)-4) else exit_sub end_if end_if
L: if instr(f$,"par")=0 if message_input("Pas d' auteur !","Nom de l' auteur","")=1 f$=f$+"_par_"+message_text$ goto L else Message "Désolé !"+chr$(13)+"Sans nom d' auteur, le nom de fichier sera invalide"+chr$(13)+"Fermeture du programme..." exit_sub end_if end_if
ext$=file_extract_extension$(par2$) if ext$<>".pdf" Message "Ce fichier n' est pas au bon format pour le mag !" exit_sub end_if
fl%=len(f$) caption alph2%,f$ ' passe 1 mise en minuscule caption alph4%,"Passe 1 [ Mise en minuscules ]" left alph4%,((width(pan%)-width(alph4%))/2) display for i%=1 to fl% pbpos%=int((i%*100)/fl%) l$=mid$(f$,i%,1) l$=lower$(l$) nf$=nf$+l$ position pbar%,pbpos% caption alph3%,str$(pbpos%)+" %" left alph3%,(width(pan%)-width(alph3%))-10 display next i% f$=nf$ nf$="" pause 2000 position pbar%,0 caption alph3%,"0 %" left alph3%,(width(pan%)-width(alph3%))-10 display
' passe 2 suppression des accents caption alph4%,"Passe 2 [ Suppression des accents ]" left alph4%,((width(pan%)-width(alph4%))/2) display for i%=1 to fl% pbpos%=int((i%*100)/fl%) l$=mid$(f$,i%,1) if asc(l$)>223 and asc(l$)<230 : l$="a" : end_if if asc(l$)=231 : l$="c" : end_if if asc(l$)>231 and asc(l$)<236 : l$="e" : end_if if asc(l$)>235 and asc(l$)<240 : l$="i" : end_if if asc(l$)>239 and asc(l$)<247 : l$="o" : end_if if asc(l$)>248 and asc(l$)<253 : l$="u" : end_if nf$=nf$+l$ position pbar%,pbpos% caption alph3%,str$(pbpos%)+" %" left alph3%,(width(pan%)-width(alph3%))-10 display next i% f$=nf$ nf$="" pause 2000 position pbar%,0 caption alph3%,"0 %" left alph3%,(width(pan%)-width(alph3%))-10 display
' passe 3 suppression des espaces et apostrophes caption alph4%,"Passe 3 [ Suppression des espaces et apostrophes ]" left alph4%,((width(pan%)-width(alph4%))/2) display for i%=1 to fl% pbpos%=int((i%*100)/fl%) l$=mid$(f$,i%,1) if i%>1 : l2$=mid$(nf$,i%-1,1) : else : l2$="" : end_if if asc(l$)<97 or asc(l$)>122 if l2$=chr$(95) l$="" else l$=chr$(95) end_if end_if nf$=nf$+l$ position pbar%,pbpos% caption alph3%,str$(pbpos%)+" %" left alph3%,(width(pan%)-width(alph3%))-10 display next i% f$=nf$ nf$="" pause 2000 position pbar%,0 caption alph3%,"0 %" left alph3%,(width(pan%)-width(alph3%))-10 display
nf$=path$+f$+ext$ file_rename par2$,nf$ message "L' article :"+chr$(13)+par2$+chr$(13)+"a été renommé ainsi :"+chr$(13)+nf$ end_sub
' ------------------------------------------------------------------------------
sub COLOR_PROGRESS_BAR(nb%,r%,g%,b%) dim_local i,j,k%,my_library$,my_dll$,found% ' verifie si "user32" existe: my_dll$="user32" i=0 k%=0 found%=0 my_dll$=lower$(my_dll$) j=instr(my_dll$,".") : if j>0 then my_dll$=left$(my_dll$,j-1) repeat k%=k%+1 until library$(k%)="_" repeat i=i+1 my_library$=lower$(library$(i)) j=instr(my_library$,".") : if j>0 then my_library$=left$(my_library$,j-1) ' if my_library$=my_dll$ found%=1 exit_repeat end_if until i=32 ' charge la librairie et cré la commande si nécessaire if found%=0 library k%,my_dll$ ' print k%," : not found ",library$(k%) :' debug command "pb_color","SendMessageA",k%,"IIII","stdcall" else ' print i," : found ",library$(i) :' debug end_if ' colore la progress_bar pb_color handle(nb%),1033,0,(b%*65536)+(g%*256)+r% end_sub J' ai ajouter la possibilité de lancer directement par l' exe. On choisit le fichier par2$ par un open_dialog | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Petit Utilitaire RenameArticles Jeu 17 Nov 2016 - 8:03 | |
| Testé et approuvé. Je l'ai placé dans mon dossier des articles pour Panoramic.
A+ | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 17 Nov 2016 - 13:35 | |
| Merci Jean Claude ! Maintenant, j' ai une petite supplique... Evitez les titres du style : "Les grandes théorie sur l' art des statistiques en amérique et en europe de l' ouest mais surtout sur mars par xxxxx.pdf" Merci... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Petit Utilitaire RenameArticles Jeu 17 Nov 2016 - 14:22 | |
| | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re: Petit Utilitaire RenameArticles Jeu 17 Nov 2016 - 15:23 | |
| Je crois que je vais me refaire une bdd pour les articles et reprendre le format artxxxxx. | |
| | | Contenu sponsorisé
| Sujet: Re: Petit Utilitaire RenameArticles | |
| |
| | | | Petit Utilitaire RenameArticles | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |