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

EDI Delphi Discussion :

Détecter l'usage de constantes


Sujet :

EDI Delphi

  1. #1
    Membre du Club Avatar de CoyotteDundee
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 47
    Points
    47
    Par défaut Détecter l'usage de constantes
    Bonjour à toutes et tous,

    Nous avons un paquet (un gros paquet) d'applications à recompiler suite au passage d'Office 2003 à 2010. Nombre de ces applications ont souvent été créées en dupliquant un projet existant et en modifiant les clauses uses dans les unité concernées.
    Il en résulte que nous avons un nombre assez élevé de sources dupliquées, à modifier, ou pas, et qui sont utilisées, ou pas, dans nos projets.

    Afin de mettre un peu d'ordre dans tout cela, j'essaie de déterminer ce qui est effectivement utilisé dans nos projets. Pour ce faire, je demande un fichier map détaillé lors de la compilation, fichier qui est analysé par la suite. En effet, si une unité n'est pas utilisée, il semble que ses références dans le ficher map soient réduites à une ligne. De même si l'unité fait l'objet d'un uses dans qu'aucune fonction ne soit appellée.

    Donc, si je suis dans ce cas je considère que l'unité n'est pas utilisée et je la renseigne comme telle.

    Tout irait bien, dans le meilleur des mondes, si il n'y avait pas les constantes. J'ai fait quelques tests et il appert que le fichier map ne semble pas les référencer, même si elles sont utilisées. (ou je ne sais pas comment les retrouver)
    Quelqu'un a-t-il une idée pour déterminer, le plus simplement possible, si les constantes définies dans une unité sont utilisées par une autre ?

    Merci d'avance,

    Coyotte

  2. #2
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 984
    Points : 1 418
    Points
    1 418
    Par défaut
    moi j'utilise "Uses Cleaner" qui vient avec CnPack c'est efficace je trouve
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

  3. #3
    Membre éprouvé Avatar de Simara1170
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Avril 2014
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Delphi
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2014
    Messages : 423
    Points : 1 154
    Points
    1 154
    Par défaut
    Va regarder dans la FAQ, je crois bien avoir vu un lien vers un programme qui passe ton source en revue et t'indiques les lignes de code qui ne sont jamais exécutées...
    Citation Envoyé par deuche
    Il y a encore à peine 150 ans, nous vivions encore comme il y a environ 2000 ans.

  4. #4
    Membre du Club Avatar de CoyotteDundee
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 47
    Points
    47
    Par défaut
    Merci à vous deux.
    Je vais aller jeter un oeil sur vos conseils.

    Bonne journée,

    Coyotte

  5. #5
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par CoyotteDundee Voir le message
    Quelqu'un a-t-il une idée pour déterminer, le plus simplement possible, si les constantes définies dans une unité sont utilisées par une autre ?
    Icarus de Peganza est un outil gratuit qui analyse des sources Delphi ou Borland et produit un rapport sur l'utilisation des unités.
    Ce rapport vous aidera à supprimer les références aux unités inutiles et vous indiquera quelles références d'unités peuvent être déplacés de la clause uses de la partie interface vers celle de la partie implementation.
    http://www.peganza.com/products_icarus.htm
    Philippe.

  6. #6
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 387
    Points : 2 999
    Points
    2 999
    Par défaut
    Pour ma part, je place toute les constantes dans une seule unités dédiée à cet usage.
    Si je veux savoir ce qui est utilisé ou pas, il suffit de retirer le fichier de constantes du projet et regarder là où le compilateur se plaint.
    Pas besoin d'outil qui fait ça pour moi.

  7. #7
    Membre du Club Avatar de CoyotteDundee
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 47
    Points
    47
    Par défaut
    @papy:
    Oui... Pour de petits projets, cela est envisageable mais
    1) Dans le cas présent, les applications sont multiples, avec des modules partagés, ou pas. Il serait compliqué (et inefficace) d'avoir un seul fichier de constantes.
    (Les constantes liées à la gestion des documents WORD n'ont rien à voir avec celles associées à base de données, ...)
    2) Quand bien même serait-ce une solution, ce n'est pas la situation actuelle... Et il me faut faire avec l'existant. :-)

    @Ph. B.
    Merci pour l'info. J'ai téléchargé l'outil, je vais le tester.

    @Ouiouioui
    J'ai installé Cnpack... Impressionnant ! Il y a une mine de trucs sympas là-dedans ! Merci :-)

    Bien à vous,

    Coyotte

  8. #8
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 387
    Points : 2 999
    Points
    2 999
    Par défaut
    Attention : J'ai utilisé un jour le "uses cleaner" de cnpack et je n'ai pas pu recompiler mon projet ensuite.
    Je conseille fortement une sauvegarde totale avant usage.
    Ça ne m'est arrivé qu'une fois, mais je m'en souviens encore

    Sinon, cnpack est un super ensemble d'outils, j'en conviens.

  9. #9
    Membre du Club Avatar de CoyotteDundee
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 47
    Points
    47
    Par défaut
    @Papy
    Merci pour l'avertissement.
    Ce n'est pas négligeable en effet ! (Inutile de d'ajouter des soucis à ceux existants )

    Coyotte

  10. #10
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Si peux apporter ma pierre à l'édifice concernant le problème de uses avec CnPack car j'ai également rencontré ce problème.
    D'après ce que j'ai pu constater, le problème ne venait pas de CnPack mais des IFDEF dans les sources partagé entre plusieurs projets.

    Seul le projet sur lequel le nettoyage a été fait compilait (celui dont il a pu lire les options).

Discussions similaires

  1. Détecter Windows 2000 Professionnel
    Par FW-S dans le forum Delphi
    Réponses: 9
    Dernier message: 03/11/2006, 23h02
  2. [ADO] Constantes des types de champ
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 05/09/2002, 11h08
  3. Au sujet des constantes
    Par FranT dans le forum Langage
    Réponses: 8
    Dernier message: 09/08/2002, 11h03

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