JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Photos de vacances Lun 19 Juil 2021 - 16:06 | |
| C'est un peu prématuré, mais bon, par les temps qui courent on ne sait plus trop où on en est ! Le problème: s'il y a au moins deux appareils qui font des photos pendant les vacances, à la rentrée il faut trier tout ça, il est intéressant de le faire par ordre chronologique de prise de vue, en intercalant les images quel que soit l'appareil d'origine. La solution: regrouper toutes les images dans un même répertoire, et avec la sub ci-dessous on récupère la liste triée par ordre de prise de vue: nom du fichier, suivi en option de la date/heure de prise de vue. - Code:
-
DIM r$ r$ = "C:\PHOTOS\MesPhotos_20210714" Tri_chrono(r$,1) MEMO 1: FULL_SPACE 1: CLIPBOARD_PASTE 1 END ' ============================================================================= SUB Tri_chrono(r$,opt%) ' Tri chronologique croissant des photos du répertoire r$ (date/h prise de vue), ' Résultat: liste brute des noms de fichiers triés ' si opt% = 1: noms de fichiers + espace + date/heure de prise de vue ' forme aaaa:mm:jj hh:mm:ss ' Liste résultat dans le clipboard. DIM_LOCAL rc$,sz,a$,b$,f$,i,k,id,vhx$,dat$ rc$ = CHR$(13)+CHR$(10) IF RIGHT$(r$,1) <> "\" THEN r$ = r$+"\" MEMO 900: WIDTH 900,800: HIDE 900 DLIST 901 EXECUTE_WAIT "cmd.exe|/c DIR "+r$+"*.jpg | clip" CLIPBOARD_PASTE 900 FOR i = 6 TO COUNT(900)-2 a$ = ITEM_READ$(900,i): a$ = RIGHT_POS$(a$,37) f$ = r$+a$ FILEBIN_OPEN_READ 9,f$: FILEBIN_HEXA_READ 9,2000,vhx$: FILEBIN_CLOSE 9 id = INSTR(vhx$, "0CA4030001"): IF id<1 THEN id = INSTR(vhx$, "0AA4030001") IF id<1 THEN id = INSTR(vhx$, "06A4030001") IF id > 0 dat$ = "" FOR k = 0 TO 37 STEP 2 dat$=dat$+CHR$(HEX(MID$(vhx$,k+id+64,2))) NEXT k END_IF ITEM_ADD 901,dat$+" "+a$ NEXT i SORT 901 CLEAR 900 FOR i = 1 TO COUNT(901) a$ = ITEM_READ$(901,i) b$ = RIGHT_POS$(a$,21): IF opt% = 1 THEN b$ = b$+" "+LEFT$(a$,19) ITEM_ADD 900,b$ NEXT i a$ = "": FOR i = 1 TO COUNT(900): a$=a$+ITEM_READ$(900,i)+rc$: NEXT i SELECT_TEXT 900,1,LEN(a$)-2: CLIPBOARD_COPY 900 DELETE 900: DELETE 901 END_SUB ' ============================================================================= La recherche de la date/heure dans les données 'Exifs' du fichier photo est peut-être un peu empirique, à voir éventuellement. Il existe des logiciels externes qui savent faire ça (Jhead, Irfanview ...) Remarque: Pour Windows, la date du fichier est celle à laquelle il est écrit dans le pc = date de création. Donc si on fait un DIR /O:D (liste triée par date/heure), ce sera en fonction de cette de date de création. J'ai une petite sub qui force la date de création à la date de prise de vue, mais il faut des ressources externes (Jhead.exe et FileTouch.exe). On pourrait sans doute le faire en pur Panoramic, mais je n'ai pas étudié l'affaire (par paresse...). La solution de facilité, si ça peut intéresser quelqu'un: FileTouch.exe, pour modifier facilement les dates/heures de création, modification, dernier accès d'un fichier: http://www.softtreetech.com/24x7/archive/47.htm
Dernière édition par JL35 le Lun 26 Juil 2021 - 19:37, édité 1 fois | |
|
lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: Re: Photos de vacances Lun 26 Juil 2021 - 17:14 | |
| Bonjour JL35, et bonjour à tous.
Je viens d'essayer ton programme, et j'ai un petit problème.
J'ai créè une directory avec quelques photos pour faire un essai.
J'ai un message d'erreur
lligne 23 impossible d'ouvrir le fichier c:\fotos Accès refusé.
Je peux écrire dans le fichier, modifier des données Etc etc .
Peux tu me dire STP d’où provient cette erreur
Merci par avance
Bonne fin de journée | |
|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Photos de vacances Lun 26 Juil 2021 - 19:36 | |
| Bonjour lepetitmarocain, Pas facile de donner une explication en n'ayant pas les éléments en mains... D'après ce que tu cites il n'y a aucun nom de fichier, juste le nom du répertoire C\fotos Et je vois qu'un caractère a disparu dans la ligne 15, ce qui explique sans doute l'affaire Il faut la corriger ainsi: - Code:
-
IF RIGHT$(r$,1) <> "" THEN r$ = r$+"" et non pas <> "" et r$ = r$+"" ce qui ne marche pas (et en plus ne veut rien dire !). (j'ai corrigé dans le code en haut). Dis-moi si ça marche maintenant ? | |
|
lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: Re: Photos de vacances Mer 28 Juil 2021 - 9:51 | |
| Bonjour JL35. Merci pour la modif, qui fait que le programme fonctionne comme il faut. Bonne journée à tous | |
|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Photos de vacances Mer 28 Juil 2021 - 12:01 | |
| Merci pour le retour et bonne journée également à toi (ici plutôt pluvieuse, quel été !...) | |
|
Contenu sponsorisé
| Sujet: Re: Photos de vacances | |
| |
|