IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Date de création d'une photo


Sujet :

Delphi

  1. #41
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 573
    Points : 25 206
    Points
    25 206
    Par défaut
    Windows fournit l'interface IWICMetadataQueryReader fourni par la DLL WindowsCodecs.dll
    C'est ce qu'utilise XP et Seven pour lire les MetaData des fichiers JPEG, TIFF ...
    En général, si une fonctionnalité existe dans Windows, il faut commencer par chercher une API ou Interface qui propose cette fonctionnalité, si celle-ci n'est pas publiée, il faut se tourner sur un code manuel comme il a été proposé mais semble difficile à intégrer !

    Je pense que l'exemple assez complet : How-to: Re-encode a JPEG Image with Metadata pourra t'inspirer et t'orienter sur de nouvelles pistes !

    Utilise C++Builder, ma version 2007 contient wincodec.h et wincodecsdk.h

  2. #42
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 118
    Points : 0
    Points
    0
    Par défaut suite
    Remerci mais je cherche à faire un programme en d6 pour qu'il classe les photos selon leur date de création.
    Dans mon cas particulier j'ai bricolé un petit programme mais lorsque je lui demande après un finfirst:
    s:étant un string
    j:un integer (la date)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if pos(inttostr(j),s)>0 then begin createdir('K:\Om\Zz\'+inttostr(j));
    MoveFile(Pchar('K:\Om\Zz\'+resul.name),Pchar('K:\Om\Zz'+'\'+inttostr(j)+'\'+resul.name));
    il ne fait rien.
    MoveFile serait-elle une procédure capricieuse?

  3. #43
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 573
    Points : 25 206
    Points
    25 206
    Par défaut
    Tu peux utiliser WindowsCodecs en D6, il sera juste plus difficile de trouver une version pascal de la TLB comme dans WinCodec.pas (fourni depuis 2010 ?)

    Pour MoveFile, non cette fonction n'a aucun problème
    Pense à utiliser ForceDirectories pour créer une arborescence complète d'un seul coup !
    CreateDir ne crée un dossier que si le chemin parent existe déjà !
    ForceDirectories permet de ne pas se compliquer la vie !

    Tu as vérifié GetLastError ?
    Tu as vérifié les Attributs comme ReadOnly ?

    Tu stocke la date dans un Integer ? partie entière d'un TDateTime ou nombre comme 20110909 ?

    Rappelons que D6 a plus de 10 ans, XP n'existait même pas à l'époque, en Delphi, je dirais qu'il n'y avait que 10% des API de Win2K qui était mappé !

    Si tu veux utiliser une version gratuite, regarde Lazarus, tu auras plus d'évolutions disponibles
    C'est le problème de vouloir insister sur les vieilles versions,
    soit on a la patience et le niveau pour coder tout soi-même,
    soit on utilise un outil plus moderne mais qui dépend aussi d'un OS plus récent !

    Sinon, en Visual Studio Express, gratuit, il faut savoir que le NET fourni des wrappers pour le EXIF et les metadata de fichiers !

  4. #44
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 874
    Points : 11 363
    Points
    11 363
    Billets dans le blog
    6
    Par défaut
    je reste vivement intéressé par un lien vers une ou plusieurs photos qui te posent problème, à des fins de debogage.

    si tu es en W64, il est certainement souhaitable d'utiliser le code proposé par Shaï pour intervertir les octets d'un Cardinal, plutôt que de l'asm.

  5. #45
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 118
    Points : 0
    Points
    0
    Par défaut
    je ne comprend pas le dernier message de Tourlourou. Ni celui de Shai relatif au langage asm
    intervertir les octets d'un cardinal...? largué !

  6. #46
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 118
    Points : 0
    Points
    0
    Par défaut suite
    Je ne sais pas me servir de Getlasterror
    et pour Readonly je ne sais quoi faire, sachant que l'attribut d'un fichier en windows 7 m'est impossible à gérer en raison des différents utilisateurs dont les paramétrages sont bloqués.
    s'il est readonly on ne peut le déplacer par D6 (movefile)?
    comment le déplacer dans tou ses cas ?

  7. #47
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 118
    Points : 0
    Points
    0
    Par défaut lazarus
    jamais entendu parler de lazarus !
    un source en d6 est-il executable en lazarus ou bien faut-il tout réécrire?

  8. #48
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 874
    Points : 11 363
    Points
    11 363
    Billets dans le blog
    6
    Par défaut
    remplace donc la fonction Swap32 par celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function Swap32(Value: Longword): Longword;
       type
          TMapLongword = array[0..3] of Byte;
    begin
          TMapLongword(Result)[0] := TMapLongword(Value)[3];
          TMapLongword(Result)[1] := TMapLongword(Value)[2];
          TMapLongword(Result)[2] := TMapLongword(Value)[1];
          TMapLongword(Result)[3] := TMapLongword(Value)[0];
    end;
    un Cardinal = LongWord est un entier non signé sur 4 octets. les entiers peuvent y être représentés selon 2 normes : avec l'octet de plus haut poids en tête ou à la fin. pour les jpeg, il y a une différence avec le style delphi, d'où la nécessité de conversions.

    puis reteste les photos : s'il ne trouve pas de données IPTC de date de création, essaye de suivre en pas-à-pas où le code s'arrête de chercher (pas de segment APP13 ? pas de tag date ? bug quelconque ?)

    et n'oublie pas (ça, c'est en clair, tu devrais comprendre) : en cas de problème, un lien vers les photos permettrait de les tester et de béboguer au besoin, voire d'orienter autrement les recherches.

    Lazarus est un EDI Delphi-like basé sur le Free-Pascal. Multi-plateformes, le code Delphi est presque réutilisable sans modifications, pour des applications simples sans composants exotiques... mais il ne bénéficie pas d'une aide F1 comme celle de D6, qui permet d'apprendre beaucoup !

  9. #49
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 118
    Points : 0
    Points
    0
    Par défaut lazarus
    Je viens de le charger et tester, pas de Webbrowser comme en D6
    Movefile avec shellapi dans les uses ne marche pas
    ...

  10. #50
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 118
    Points : 0
    Points
    0
    Par défaut swap32
    J'ai bien copié la fonction swap32
    et quand on applique la procédure à cette photo prise en 2010 (comme windows 7) le confirme

    http://www.daylife.com/photo/0erF8v8...rance+%2B+2010

    on lit "non trouvé

  11. #51
    Membre éclairé
    Avatar de Whiler
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 298
    Points : 664
    Points
    664
    Par défaut
    La photo de cette page contient des données IPTC, aucun EXIF.

    La date de création IPTC est le 07/09/2011.

  12. #52
    Membre éclairé
    Avatar de Whiler
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 298
    Points : 664
    Points
    664
    Par défaut
    Citation Envoyé par Whiler Voir le message
    Personnellement, j'utilise CCR Exif.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    uses ..., CCR.Exif.IPTC;
     
    procedure TForm1.btn2Click(Sender: TObject);
    var
      IPTCData: TIPTCData;
      msImg   : TMemoryStream;
    begin
      if OpenPictureDialog1.Execute then
      begin
        IPTCData := TIPTCData.Create;
        msImg    := TMemoryStream.Create;
        try
          msImg.LoadFromFile(OpenPictureDialog1.FileName);
          IPTCData.LoadFromJPEG(msImg);
          ShowMessage(DateToStr(IPTCData.DateCreated));
        finally
          msImg.Free;
          IPTCData.Free;
        end;
      end;
    end;

  13. #53
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 118
    Points : 0
    Points
    0
    Par défaut à whiler
    Je ne comprend rien
    Ca ne marche pas ; à la compilation:
    "fichier non trouvé CCR.dcu"
    elle est où cette unité?

  14. #54
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 118
    Points : 0
    Points
    0
    Par défaut suite
    Quant à la photo
    http://www.daylife.com/photo/0erF8v8...rance+%2B+2010

    elle ne date pas de 2011 mais:

    on September 07, 2010 at the route de Lorient stadium in Rennes, western France

  15. #55
    Membre éclairé
    Avatar de Whiler
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 298
    Points : 664
    Points
    664
    Par défaut
    Citation Envoyé par Whiler Voir le message
    La photo de cette page contient des données IPTC, aucun EXIF.

    La date de création IPTC est le 07/09/2011.
    Citation Envoyé par mecyber25 Voir le message
    Quant à la photo
    http://www.daylife.com/photo/0erF8v8...rance+%2B+2010

    elle ne date pas de 2011 mais:

    on September 07, 2010 at the route de Lorient stadium in Rennes, western France

    La date de création IPTC est le 07/09/2011.

    Je n'ai parlé à aucun moment de la description IPTC....

    A défaut de le coder, regarde au moins ce que te dit ton Windows lorsque tu la télécharges et que tu regardes la colonne/valeur Prise de vue.

    Même si elle est fausse, c'est quand même ce qu'elle vaut...

  16. #56
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 118
    Points : 0
    Points
    0
    Par défaut date de création
    Cette photo a été prise par un photographe DAMIEN MEYER (Photo /AFP/Getty Images); je ne sais quelle expression associer à ce moment historique : date de création, ou descriptif ,ou...
    mais ce qui m'intersesse c'est la date de l'évènement photographié, pas celui de mise sur le site, sur mon disque dur, etc....
    -ou bien le site daylife ment lorsqu'il affirme qu'elle relate un évènement de 2010
    -ou bien un logiciel trompe....
    Dans une photo daylife il y a souvent écrit plusieurs dates, une seule est peut-être la date de prise de vue, et la procédure suivante devrait me la donner. Or le (ou les) répertoire(s) se crée(nt) bien (ici 2010 et 2011), mais la photo ne veut pas se déplacer dans l'un ou l'autre, pourquoi?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    procedure TForm1.Button1Click(Sender: TObject);
    var
    varf:textfile;
    s:string;
    resul:Tsearchrec;
    j:integer;
    begin
    findfirst('K:\Om\Zz\*.jpg',$01,resul);
    assignfile(varf,'K:\Om\Zz\'+resul.name);
    reset(varf);
    readln(varf,s);
    for j:=2000 to 2011 do begin
    if pos(inttostr(j),s)>0 then begin ForceDirectories('K:\Om\Zz\'+inttostr(j));
    MoveFile(Pchar('K:\Om\Zz\'+resul.name),Pchar('K:\Om\Zz'+'\'+inttostr(j)+'\'+resul.name));
    end; 
    end;
    end;

  17. #57
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 874
    Points : 11 363
    Points
    11 363
    Billets dans le blog
    6
    Par défaut
    voici le dump des infos IPTC réalisé sur l'image en question par XnView :
    C:\lazarus\userprojects\tests\tests_photos\iptc\last1.jpg

    Object Name : Par6495473
    Category : S
    Supplemental Categories : SPO,SOC
    Keywords : VERTICAL
    Date Created : 20110907
    Byline : DAMIEN MEYER
    Byline Title : Staff
    City : Rennes
    State : Ille-et-Vilaine
    Country Code : FRA
    Country : France
    Headline : Rennes' French coach Frederic Antonetti
    Credits : AFP/Getty Images
    Source : AFP
    CopyrightNotice : 2011 AFP
    Caption : Rennes' French coach Frederic Antonetti poses during the football team's official picture for the 2011-2012 season on September 07, 2010 at the route de Lorient stadium in Rennes, western France. AFP PHOTO DAMIEN MEYER (Photo credit should read DAMIEN MEYER/AFP/Getty Images)
    Caption Writer : DM/PSM
    mon unité Lazarus sort bien la date : 20110907 et non trouvé pour l'heure, qui est bien absente.

    il y a pê une erreur de saisie dans les données : il cite à la fois le 7/9/10 et le 7/9/11 : ce serait une coïncidence qu'il y ait 2 dates justes à un an d'écart !

  18. #58
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 874
    Points : 11 363
    Points
    11 363
    Billets dans le blog
    6
    Par défaut
    On retient aussi le retour au bercail de Julien Féret. Après trois bonnes saisons passées à Nancy, le milieu de terrain a décidé de faire son come-back à Rennes pour s'imposer au sein de son club de coeur
    Date Created : 20110907
    Caption : Rennes' French midfielder Julien Feret poses during the football team's official picture for the 2011-2012 season on September 07, 2010 at the route de Lorient stadium in Rennes, western France. AFP PHOTO DAMIEN MEYER (Photo credit should read DAMIEN MEYER/AFP/Getty Images)
    voici donc un joueur qui revient à Rennes pour la saison 2011/2012 et qui a posé un an avant pour la photo officielle de l'équipe ?
    on ne nous dit pas tout...
    il ne faut pas croire tout ce qui est écrit !

  19. #59
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 874
    Points : 11 363
    Points
    11 363
    Billets dans le blog
    6
    Par défaut
    code fonctionnel sous Delphi 5 et Windows 98 : tu avais swappé les Swaps sur données de type Word !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    function Swap32(Value: Longword): Longword;
       type
          TMapLongword = array[0..3] of Byte;
    begin
          TMapLongword(Result)[0] := TMapLongword(Value)[3];
          TMapLongword(Result)[1] := TMapLongword(Value)[2];
          TMapLongword(Result)[2] := TMapLongword(Value)[1];
          TMapLongword(Result)[3] := TMapLongword(Value)[0];
    end;
     
    function ChercheAPP13IPTCTag(ATag: Byte; AStream: TMemoryStream): string;
    var
      Mot: Word;
      FinApp13, Card: Cardinal;
      APP13Found, SOSFound: Boolean;
      Octet: Byte;
      S: string;
      i: integer;
    begin
      Result:='non trouvé';
      APP13Found:=False;
      SOSFound:=False;
      AStream.Seek(0, soFromBeginning);
      AStream.Read(Mot, 2);
      Mot:=Swap(Mot);
      if Mot<>$FFD8 then Exit; // pas JPEG
      repeat
        AStream.Read(Mot, 2);
        Mot:=Swap(Mot);
        case Mot of
          $FFED: APP13Found:=True; // on a trouvé le marqueur APP13
          $FFDA: SOSFound:=True; // on a atteint le début l'image
         else begin
           AStream.Read(Mot, 2);
           Mot:=Swap(Mot);
           AStream.Seek(Mot-2, soFromCurrent);
         end;
        end;
      until APP13Found or SOSFound;
      if APP13Found
      then begin
        AStream.Read(Mot, 2);   // longueur APP13
        Mot:=Swap(Mot);
        FinApp13:=AStream.Position+Mot-2; // pour test ultérieur
        // titre APP13
        S:=EmptyStr;
        repeat
          AStream.Read(Octet, 1);
          if Octet>0 then S:=S+Chr(Octet);
        until Octet=0;
        // signature données
        AStream.Read(Card, 4);
        Card:=Swap32(Card);
        if Card<>$3842494D then Exit; // = '8BIM' : signature IRB (Image Resource Block)
        // signature IPTC
        AStream.Read(Mot, 2);
        Mot:=Swap(Mot); // inutile !!!
        if Mot<>$0404 then Exit; // bloc de données IPTC-NAA
        // champ 'Name' (souvent NULL)
        S:=EmptyStr;
        AStream.Read(Octet, 1); // nombre de caractères de la chaîne (Pascal string)
        if Octet=0
        then AStream.Seek(1, soFromCurrent) // car alignement pair (rempli avec 1 zéro)
        else begin
          for i:=1 to Octet
          do begin
            AStream.Read(Octet, 1);
            S:=S+Chr(Octet);
          end;
          if Odd(Length(S))
          then AStream.Seek(1, soFromCurrent) // car alignement pair (rempli avec 1 zéro)
        end;
        // longueur données qui suivent
        AStream.Read(Card, 4);
        Card:=Swap32(Card);
        if AStream.Position+Card<>FinApp13 then Exit; // discordance données de longueur
        // parcours des tags
        while AStream.Position<FinApp13
        do begin
          AStream.Read(Octet, 1);
          if Octet<>$1C then Exit; // marqueur obligatoire
          AStream.Read(Octet, 1);
          if Octet<>$02 then Exit; // on filtre les enregistrements d'application n°2
          // qui correspondent aux champs IPTC décrivant le document
          AStream.Read(Octet, 1); // tag
          AStream.Read(Mot, 2); // longueur de la donnée
          Mot:=Swap(Mot);
          i:=1 shl 15; // masque bit 15
          if Mot and i = i then Exit; // champs de longueur > 32767 non gérés...
          if Octet=ATag
          then begin
            S:=EmptyStr;
            for i:=1 to Mot
            do begin
              AStream.Read(Octet, 1);
              S:=S+Chr(Octet);
            end;
            Result:=S;
            Break; // sort du while
          end
          else AStream.Seek(Mot, soFromCurrent)
        end;
      end;
    end;
     
    procedure TForm1.Button3Click(Sender: TObject);
    var
      Flux: TMemoryStream;
    begin
      if OpenPictureDialog1.Execute
      then begin
        Flux:=TMemoryStream.Create;
        Flux.LoadFromFile(OpenPictureDialog1.FileName);
        ShowMessage(ChercheAPP13IPTCTag(55, Flux)); // Date Created : YYYYMMDD : 8 caractères
        ShowMessage(ChercheAPP13IPTCTag(60, Flux)); // Time Created : HHMMSS+/-HHMM : 11 caractères
        Flux.Free;
      end;
    end;

  20. #60
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 118
    Points : 0
    Points
    0
    Par défaut suite
    1)Toujours pas.
    Exemple: http://www.daylife.com/photo/0clXfny...=Pitt+%2B+2010
    En windows 7, il affiche
    parfois:"rien trouvé" (pour la date)
    parfois:"impossible d'ouvrir le fichier"
    Xnview en revanche la date de 2010
    2)Independemment:
    pourquoi movefile ne marche pas dans ma petite procedure?

Discussions similaires

  1. Date de création d'une table
    Par LBO72 dans le forum SQL
    Réponses: 5
    Dernier message: 25/05/2007, 09h24
  2. Date de cliché d'une photo
    Par Invité dans le forum Langage
    Réponses: 1
    Dernier message: 20/05/2007, 11h21
  3. Réponses: 4
    Dernier message: 20/04/2007, 09h13
  4. Réponses: 2
    Dernier message: 13/07/2006, 17h01
  5. [requete] Date de création d'une base oracle.
    Par Cyborg289 dans le forum Oracle
    Réponses: 2
    Dernier message: 14/02/2006, 11h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo