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

  1. #1
    Expert éminent sénior
    [Linux] Pourquoi la même instruction s'exécute ou plante, selon le programme ?
    Bonjour,

    Aujourd'hui, un peu de magie…

    Soit un programme de test des données Exif récupéré dans le paquet complet du projet dExif 1.5, je veux parler du tout premier exemple dans le dossier 00_Basic, qui ne contient quasiment rien, qu'on en juge (je ne mets que ce qui est important pour ma question) :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var
      MyFileName : String;
      ImgData: TImgData;
    begin
      MyFileName:= FileOpen.Dialog.FileName;
      if FileExists(MyFileName) then begin
        Image1.Picture.LoadFromFile(MyFileName);
        ImgData := TImgData.Create();
        try
          if ImgData.ProcessFile(MyFileName) then begin


    Ça s'exécute très bien, je récupère les données Exif et l'image de mon fichier.

    Maintenant, dans un projet d'étude, je me tape la tête contre le mur depuis une heure avec ça :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var
      MyFileName : String;
      ImgData: TImgData;
    begin
      MyFileName:= lbImageFiles.Items.Strings[i];
      // le test d'existence du fichier est fait en amont
        Image1.Picture.LoadFromFile(MyFileName); 
        ImgData := TImgData.Create();
        try
          ShowMessage(MyFileName);// ok, alors pourquoi AV dessous ?
          if ImgData.ProcessFile(MyFileName) then begin // 30/10/2019 : AV


    Pourquoi ?
    Il va sans dire que j'ai commencé par virer le contenu du dossier lib, mais ça n'a rien changé.

    EDIT : une précision oubliée : il va bien sûr sans dire que j'utilise le même fichier image dans les deux programmes.
    Le souci (sinon ça ne serait pas marrant), c'est qu'avec un autre fichier image il n'y a pas de problème... /EDIT

    Quelqu'un aura une idée miraculeuse, ou alors il faut envisager un pèlerinage à Lourdes ?

    EDIT2 : je crois que j'ai une piste : le module utilisé n'est pas à la même version selon le programme --> plus qu'à tout uniformiser, ça va prendre du temps…
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  2. #2
    Membre expert
    Salut,

    hum bizarre effectivement n'y aurait-il pas une différence dans les unités déclarées dans le(s) uses ?

    a+
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  3. #3
    Expert éminent sénior
    Bon, c'était bien ça : différences entre les fichiers avec un même nom, dans des dossiers différents.

    Faut dire aussi qu'ils n'ont rien fait pour simplifier les choses : il y a une grosse douzaine de .pas et .inc, sans aucun respect des majuscules/minuscules, autant dire que sous Linux ça a toujours été l'enfer à compiler.

    Bref, c'est réglé d'une manière olé olé : cette version nous dit qu'elle est un fork de l'autre version, mais sans préciser de dates ou autres, pagaille pour s'y retrouver.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  4. #4
    Membre expert
    Moi ce qui me navre c'est que l'on soit obligé de faire attention à la casse sous Linux. Cela m'a valus quelques soucis aussi car j'ai pris l'habitude de nommer mes fichiers en CamelCase. Donc depuis c'est la première chose que je vérifie quand je passe sous Linux
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  5. #5
    Expert éminent sénior
    Ben dans le zip Dexif, tu trouves des fichiers tout en minuscule, d'autres tout en majuscule, d'autres où c'est mélangé et en général le nom du fichier correspond mal à la déclaration de l'unité, et pareil pour les uses où on trouve n'importe quoi.

    Pour réussir à compiler ça, c'est un exploit,
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

###raw>template_hook.ano_emploi###