Comparaison de code source...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Comparaison de code source...

par titerm » 23 mars 2007, 20:47

Bon, voila la réponse plus détaillée.

Soit tu passes par un ou des outils externes, soit tu utilises un editeur avec des fonctions de recherche avancé ( eclipse par exemple avec le package PDT dispo ici)

Dans cet editeur, une fois ton projet créé et tout tes sources importés au sein du projet, tu peux faire une recherche soit sur les déclaration des fonctions, soit sur les occurences via une recherche texte pour laquel tu pourra activer differentes option tel que les regexp.

Soit tu passes par des outils externes et donc par un shell (ou une boite dos sous windows)

Cela suppose que tu ait déjà récupérer des outils. Soit les outils basique en ligne de commande qui sont gratuits (grep et find) soit des outils sous windows qui peuvent etre gratuit ou pas.

La version ligne de commande en supposant que tu cherches la fonction foobar() c'est

find -name *.php -exec grep -l '\Wfoobar\s*?\(' {} \;

ca signfie que tu cherches tous les fichier php et que pour chacun tu execute la fonction grep avec ses paramentre (fin de la fonction délimité par le \; ).
Les argumenst de grep sont -l pour n'avoir que le nom du fichier qui match, une string représentant la regexp que tu cherches et les {} represent le fichier courant trouvé par le find.

http://gnuwin32.sourceforge.net/packages/findutils.htm
http://gnuwin32.sourceforge.net/packages/grep.htm

Dans les outils windows, je suis pas spécialiste mais y a au moins total-commander qui est capable de te faire des recherche avancés
http://www.ghisler.com avec des regexp correcte

Et après, tout ce que google peut te sortir comme outils tel que wingrep http://www.wingrep.com/ and co mais je viens de tester wingrep ou examine32 et je ne suis pas convaincu... Mauvaise gestion des regexps

Pour total commander, tu te met sur le rep qui contient les sources , tu fais alt-f7
*.inc *.php dans la liste des fichiers a matcher
tu coches find texte en bas ainsi que regex
et tu entres dans la pattern a rechercher la regexp que tu souhaites
\Wfoobar\s*?\( par exemple pout trouver les occurences de foobar(
\W signifie tout ce qui n'est pas une lettre ou un chiffre, \s un séparateur (espace, tab newline), le * de 0 a N et le ? fait que l'* matchera la plus petit occurence possible (ungreddy), enfin le \( pour matcher la parenthese

Good luck :)

par Invité » 23 mars 2007, 19:36

J'attend ta réponse titerm, et je te serai trés reconnaissante car j'en ai trés besoin.
Je te remercie encore une fois

par titerm » 23 mars 2007, 14:25

Ce que tu cherches s'appel grep, c'est dispo sous unix nativement, sinon, tu peux l'avoir sous windows via cygwin ou autre... Ca doit pas etre dur a trouver.

il faut combiner ca avec un find...

j'essairai de te répondre plus précisément plus tard si besoin est

par leila » 23 mars 2007, 11:21

Bonjour, merci pour ta réponse titerm,
moi ce que je veux c'est un outil pas une fonction(soit un package à ajouter dans easyEclipse) qui me permet de chercher l'occurence d'une fonction au sein des fichiers.
Je m'explique davantage: mon but c'est lors d'une maintenance ou correctionde bug d'un code(une fonction par exemple) je veux savoir quels sont les autres traitement ou cette même fct est manipulé pour faciliter les test de regressions.
j espère que c clair mtn.
Merci qd même pour ton aide

par titerm » 22 mars 2007, 20:31

Je suis pas sur d'avoir compris ce que tu demandes... Il manque des mots et d'autre sont coupés....

Si tu veux une fonction qui te donne la liste des fichiers d'un repertoire, tu peux par exemple utiliser glob()

par leila » 22 mars 2007, 19:32

Bonjour
Dans le même sens de ce post, g besoin d un outil qui prendra en entrée un dossier pho(plusieurs fichers) et une fct et me donnera en sortie ts les fichiers contenant cette fonction, qqun a une idée?

par Invité » 20 mars 2007, 12:32

Merci j'ai trouvé la solution, j'utilise passtrhu(); avec la commande diff et je recupere les infos :)
Trop bien :)

par titerm » 20 mars 2007, 12:20

1/ ici http://www.gnu.org/software/diffutils/ ou sur un mirror ftp://ftp.cs.univ-paris8.fr/mirrors/ftp ... diffutils/
2/ Non, ca risque d'etre délicat voir très délicat... En même temps, php n'est pas fait pour ca non plus... On plus planter un clou avec un tournevis mais c'est pas forcement l'outil le plus adapté...

par zola2 » 20 mars 2007, 11:20

Ah, et je peux trouver ca ou ? c'est facile à traduire en php ?

par titerm » 20 mars 2007, 11:19

Non, mais les sources du diff unix sont aisément accéssible via le gnu par exemple.

Comparaison de code source...

par zola2 » 20 mars 2007, 11:05

Bonjour,

Est-ce que quelqu'un a déjà coder un comparateur de fichier, qui permet d'indiquer la difference entre 2 fichiers ?

Merci