Mai 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 | 31 | | | Calendrier |
|
| | Nouveau défi pour les spécialistes | |
| | |
Auteur | Message |
---|
JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Nouveau défi pour les spécialistes Jeu 25 Mai 2023 - 19:03 | |
| Effectivement je suis tombé aussi sur un cas particulier, je vais essayer de corriger ça. (après avoir fait mon petit tour habituel, je profite des derniers rayons du beau soleil !) Retour de promenade, j'ai fait une petite modif dans la fonction (il y a toujours des cas particuliers), et du coup tout marche chez moi: - Code:
-
FNC DateExif$(f$) ' Date/heure de prise de vue, recherche de deux dates successives ' (prise de vue et enregistrement, identiques) DIM_LOCAL a$,b$,k FILEBIN_OPEN_READ 1,f$: a$ = FILEBIN_HEXA_READ$(1,2000): FILEBIN_CLOSE 1 k = INSTR(a$,"3A"): ' séparateur ':' WHILE k > 0 ' recherche 2 dates successives IF MID$(a$,k+6,2) = "3A" AND MID$(a$,k+40,2) = "3A" THEN EXIT_WHILE: ' ok k = INSTR_POS(a$,"3A",k+10) END_WHILE IF k = 0 RESULT "Non trouvé" ELSE a$ = MID$(a$,k-8,38): b$ = "" FOR k = 1 TO 37 STEP 2: b$ = b$+CHR$(HEX(MID$(a$,k,2))): NEXT k RESULT b$: ' format AAAA:MM:JJ HH:MM:SS END_IF END_FNC en espérant que s'il y a d'autres cas particuliers ils ne soient pas trop gênants... (ne jettes pas non plus l'eau du bain, ça peut servir). PS A tout hasard, pour le classement complet d'un répertoire par ordre chronologique: - Code:
-
SUB TriChronoPhotos(r$,obj) ' Tri chronologique par date de prise de vue des photos du répertoire r$ ' Chaque élément = AAAA:MM:JJ HH:MM:SS NomFichier ' Résutat dans l'objet obj (LIST par exemple) ' Si IF LABEL("Pdxf") = 0 THEN LABEL Pdxf DIM_LOCAL f$,i,k,a$,b$ IF RIGHT$(r$,1) <> "\" THEN r$ = r$+"\" EXECUTE_WAIT "cmd.exe|`/c DIR /B "+r$+"*.jpg |clip" LIST 900: HIDE 900: CLIPBOARD_PASTE 900 FOR i = 1 TO COUNT(900) f$ = ITEM_READ$(900,i) FILEBIN_OPEN_READ 1,r$+f$: a$ = FILEBIN_HEXA_READ$(1,2000): FILEBIN_CLOSE 1 IF INSTR(a$,"45786966") = 0 THEN b$ = "*** Pas d'Exif *** ": GOTO Pdxf k = INSTR(a$,"3A"): ' séparateur ':' WHILE k > 0 ' recherche 2 dates successives IF MID$(a$,k+6,2) = "3A" AND MID$(a$,k+40,2) = "3A" THEN EXIT_WHILE: ' ok k = INSTR_POS(a$,"3A",k+10) END_WHILE IF k = 0 b$ = "*** Non trouvé *** " ELSE a$ = MID$(a$,k-8,38): b$ = "" FOR k = 1 TO 37 STEP 2: b$ = b$+CHR$(HEX(MID$(a$,k,2))): NEXT k END_IF Pdxf: IF LEFT$(b$,1) = "*" EXECUTE_WAIT "cmd.exe|/c DIR "+r$+f$+" |clip" a$ = CLIPBOARD_STRING_PASTE$: k = INSTR(a$,"/") b$ = MID$(a$,k+4,4)+":"+MID$(a$,k+1,2)+":"+MID$(a$,k-2,2)+MID$(a$,k+9,6) b$=b$+"_FF" END_IF ITEM_ADD obj,b$+" "+f$ NEXT i SORT obj: ' tri par dates croissantes DELETE 900 END_SUB
Dernière édition par JL35 le Ven 26 Mai 2023 - 19:03, édité 1 fois | |
| | | jjn4
Nombre de messages : 2709 Date d'inscription : 13/09/2009
| Sujet: Re: Nouveau défi pour les spécialistes Ven 26 Mai 2023 - 17:45 | |
| Superbe, ça marche très bien ! Bravo ! Ok, je garde le bébé ! Et je sors le nouveau programme bientôt. | |
| | | JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Nouveau défi pour les spécialistes Ven 26 Mai 2023 - 19:08 | |
| Eh bien tant mieux, je suis content !
J'ai fait une petite modif dans la dernière sub ci-dessus (TriChronoPhotos), si la date/heure de prise de vue n'est pas trouvée (pas d'exif ou autres) ça renvoie à la place la date/heure de création du fichier, avec la mention 'FF' à la place des secondes, donc on a toujours une date. | |
| | | jjn4
Nombre de messages : 2709 Date d'inscription : 13/09/2009
| Sujet: Re: Nouveau défi pour les spécialistes Sam 27 Mai 2023 - 9:25 | |
| Hummm, intéressant ! Je vais voir si je peux l'appliquer à ta première formule : DateExif$(f$) A suivre... | |
| | | jjn4
Nombre de messages : 2709 Date d'inscription : 13/09/2009
| Sujet: Re: Nouveau défi pour les spécialistes Sam 27 Mai 2023 - 12:13 | |
| Je l'ai fait sous cette forme : - Code:
-
FNC DateExif$(f$) ' Date/heure de prise de vue, recherche de deux dates successives ' (prise de vue et enregistrement, identiques) DIM_LOCAL a$ , b$ , k , i , w , z$ FILEBIN_OPEN_READ 1,f$ : a$ = FILEBIN_HEXA_READ$(1,2000) : FILEBIN_CLOSE 1 IF INSTR(a$,"45786966") = 0 then w = 1 if w = 0 k = INSTR(a$,"3A") : ' séparateur ':' WHILE k > 0 ' recherche 2 dates successives IF MID$(a$,k+6,2) = "3A" AND MID$(a$,k+40,2) = "3A" THEN EXIT_WHILE : ' ok k = INSTR_POS(a$,"3A",k+10) END_WHILE IF k = 0 z$ = "Non trouvé" ELSE a$ = MID$(a$,k-8,38) : b$ = "" FOR k = 1 TO 37 STEP 2 : b$ = b$+CHR$(HEX(MID$(a$,k,2))) : NEXT k z$ = b$ : ' format AAAA:MM:JJ HH:MM:SS END_IF ELSE IF LEFT$(b$,1) = "*" EXECUTE_WAIT "cmd.exe|/c DIR "+f$+" |clip" a$ = CLIPBOARD_STRING_PASTE$ : k = INSTR(a$,"/") b$ = MID$(a$,k+4,4)+":"+MID$(a$,k+1,2)+":"+MID$(a$,k-2,2)+MID$(a$,k+9,6) b$ = b$+"_FF" z$ = b$+" "+f$ END_IF END_IF RESULT z$ END_FNC A vrai dire, cela ne donne rien de plus que la formule précédente !? | |
| | | JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Nouveau défi pour les spécialistes Sam 27 Mai 2023 - 14:53 | |
| Rien de plus pour les photos qui contiennent bien les infos exifs. Juste pour les fichiers qui n'en ont pas, au lieu de renvoyer 'Non trouvé', sans date, ça renvoie la date du fichier lui-même au lieu de la date de prise de vue en signalant le fait, donc on peut classer avec les autres. Après, à l'utilisateur de choisir ce qu'il doit en faire... Bon, c'est un détail. | |
| | | jjn4
Nombre de messages : 2709 Date d'inscription : 13/09/2009
| Sujet: Re: Nouveau défi pour les spécialistes Sam 27 Mai 2023 - 15:30 | |
| Non, non, mais j'ai essayé, ça ne donne vraiment rien de plus, toujours des « non trouvé ». Alors, je ne sais pas si mes transformations (telles que je les ai affichées ci-dessus) comportent des erreurs d'adaptation, mais ce que tu dis ne marche pas. | |
| | | JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Nouveau défi pour les spécialistes Sam 27 Mai 2023 - 17:47 | |
| Oui mais regarde dans la sub TriChronoPhoto() b$ prend les valeurs "*** Pas d'Exif *** " ou "*** Non trouvé *** " suivant les cas et ensuite je teste si b$ commence par le caractère '*' or toi tu positionnes "Non trouvé"... donc tu ne peux trouver d'*
C'était juste pour avoir une date même si non trouvé dans les exifs. (chez moi ça marche). | |
| | | Contenu sponsorisé
| Sujet: Re: Nouveau défi pour les spécialistes | |
| |
| | | | Nouveau défi pour les spécialistes | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |