Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème Exif ; cohabitation fonction Dir et gestion de fichier texte

1 réponse
Avatar
Laurent
Bonjour !

Tout d'abord, joyeux Noël à toutes et à tous !!! ;-)

Voici mon problème ;
Je gère le parcours de tous les fichiers contenus dans un répertoire à
l'aide des fonctions Dir(Chemin) puis Dir (en boucle). Tout allait bien !
J'ai intégré une petite gestion de fichier texte juste après chaque Dir,
mais dès le 1er passage dans la boucle, la fonction Dir me renvoie une
chaine vide, car étant à la fin du parcours des fichiers dans le répertoire
(alors qu'il devrait y avoir plusieurs fiuchiers à prendre en compte par
Dir).
Tout fonctionne normalement et proprement (avec Freefile ...)

Aie, aie, aie !

En fait, je veux extraire une info Exif d'une photo d'appareil photo
numérique. Je charge donc le nom du fichier photo courant , je crée un
fichier "bat" que j''exécute ensuite (et qui lance un petit soft qui
s'appelle ExifList), qui crée un fichier texte, que je lis ensuite pour
reprendre l'info "date de cliché".

Il y a peut être plus direct pour lire facilement un exif sous VBA ?

Quelqu'un aurait une suggestion ? Merci d'avance !

L@urent

Ret = FreeFile
Open "C:\Aviation\Data\exif.bat" For Append As #Ret
Print #Ret, Commande
Close #Ret
Ret = Shell("C:\Aviation\Data\exif.bat", 0)

Do Until Len(Dir$("c:\aviation\data\exif.txt")) <> 0
Loop
For Ret = 1 To 100000
For Ret2 = 1 To 2000
Next
Next

'Lire le contenu du fichier résultat
Ret = FreeFile
Open "C:\Aviation\Data\exif.txt" For Input As #Ret
Input #Ret, Chaine
Close #Ret
If Len(Chaine) = 19 Then
Dat = Mid$(Chaine, 9, 2) & "/" & Mid$(Chaine, 6, 2) & "/" &
Mid$(Chaine, 1, 4)
Me("Date événement") = Dat
If Len(Me!TCorrec) = 0 Or IsNull(Me!TCorrec) Then
Me!TCorrec = "0"
End If
Tim = Str(Val(Mid$(Chaine, 12, 2)) + Val(Me!TCorrec)) & Mid$(Chaine,
14, 9)
Me!THeure = Tim
End If
Kill "C:\Aviation\Data\exif.bat"
Kill "C:\Aviation\Data\exif.txt"

1 réponse

Avatar
Eric
Bonjour Laurent,

Je ne sais pas si ça peut t'être utile mais j'avais récupéré un module
de classe permettant de lire toutes les infos Exif. Je ne sais plus qui
en est l'auteur, qu'il m'en pardonne d'avance !

Je te poste ça sur ce lien : http://cjoint.com/?mzm56rIpTh
Il s'agit d'une bd avec un formulaire et le module de classe ExifReader
Au lancement du formulaire tu devras donner le chemin complet de
l'image. La date sera affichée dans une msgbox. A adapter à tes besoins.

Joyeux Noël à toi et à tous les passionnés d'Access ;-)


Bonjour !

Tout d'abord, joyeux Noël à toutes et à tous !!! ;-)

Voici mon problème ;
Je gère le parcours de tous les fichiers contenus dans un répertoire à
l'aide des fonctions Dir(Chemin) puis Dir (en boucle). Tout allait bien !
J'ai intégré une petite gestion de fichier texte juste après chaque Dir,
mais dès le 1er passage dans la boucle, la fonction Dir me renvoie une
chaine vide, car étant à la fin du parcours des fichiers dans le répertoire
(alors qu'il devrait y avoir plusieurs fiuchiers à prendre en compte par
Dir).
Tout fonctionne normalement et proprement (avec Freefile ...)

Aie, aie, aie !

En fait, je veux extraire une info Exif d'une photo d'appareil photo
numérique. Je charge donc le nom du fichier photo courant , je crée un
fichier "bat" que j''exécute ensuite (et qui lance un petit soft qui
s'appelle ExifList), qui crée un fichier texte, que je lis ensuite pour
reprendre l'info "date de cliché".

Il y a peut être plus direct pour lire facilement un exif sous VBA ?

Quelqu'un aurait une suggestion ? Merci d'avance !



Ret = FreeFile
Open "C:AviationDataexif.bat" For Append As #Ret
Print #Ret, Commande
Close #Ret
Ret = Shell("C:AviationDataexif.bat", 0)

Do Until Len(Dir$("c:aviationdataexif.txt")) <> 0
Loop
For Ret = 1 To 100000
For Ret2 = 1 To 2000
Next
Next

'Lire le contenu du fichier résultat
Ret = FreeFile
Open "C:AviationDataexif.txt" For Input As #Ret
Input #Ret, Chaine
Close #Ret
If Len(Chaine) = 19 Then
Dat = Mid$(Chaine, 9, 2) & "/" & Mid$(Chaine, 6, 2) & "/" &
Mid$(Chaine, 1, 4)
Me("Date événement") = Dat
If Len(Me!TCorrec) = 0 Or IsNull(Me!TCorrec) Then
Me!TCorrec = "0"
End If
Tim = Str(Val(Mid$(Chaine, 12, 2)) + Val(Me!TCorrec)) & Mid$(Chaine,
14, 9)
Me!THeure = Tim
End If
Kill "C:AviationDataexif.bat"
Kill "C:AviationDataexif.txt"




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr