DLL pour calcul de similarité du code source

Signaler
-
Messages postés
3833
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 juin 2021
-
je travaille sur un projet concernant l'évaluation de la qualité du code source, lorsqu'un développeur modifie ou ajoute du code je veux vérifier si ce bout de code existe (ou même sa similarité à l'autre partie du code) ailleurs dans ce fichier qui peut être .cpp,.h,...., y a t-il une DLL qui permet de détecter la présence de ce bout de code ailleurs ou de calculer sa similarité au reste du code? MERCI

5 réponses

Messages postés
3833
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 juin 2021
122
Bonjour.

Pour rechercher de la similarité, tu peux essayer de voir du côté de "Baldr".
Je ne sais pas si ça fera exactement ce que tu veux, mais ça devrait en tout cas s'en approcher.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Bonjour,merci beaucoup pour ta réponse mais l'outil "Baldr" n'est pas celui que je recherche j'ai trouvé Simian qui convient le plus et maintenant j'ai un autre problème cet outil fonctionne en ligne de commande et ça marche bien mais j'ai trouvé la spécification de son API qui fournit une multitude de fonctions que je voudrais utiliser et puisque je suis vraiment débutante je ne sais pas comment utiliser cet API dans mon application qui est en c# (je veux l'utiliser en fait dans une dll) voici ce qui est écrit là où il présente l'API:
"To get you started, here is an example of how the API might be used. Assume that the command-line contains a list of files to load:

public void main(String[] args) {
AuditListener listener = new MyAuditListener();

Options options = new Options();
options.setThreshold(6);
options.setOption(Option.IGNORE_STRINGS, true);

Checker checker = new Checker(listener, options);

StreamLoader streamLoader = new StreamLoader(checker);

FileLoader fileLoader = new FileLoader(streamLoader);

for (int i = 0; i < args.length; ++i) {
loader.load(args[i]);
}

if (checker.check()) {
System.out.println("Duplicate lines were found!");
}
}
If your files are sourced from other than the file system, say from a socket for example, you can use a StreamLoader instead of a FileLoader:

StreamLoader streamLoader = new StreamLoader(checker);

InputStream streamLoader = socket.getInputStream();

try {
loader.load("MyFile.java", stream);
} finally {
stream.close();
}
Next you will no doubt need to process the output of the Checker. For this, you must implement the AuditListener interface. The checker will notify the event listener on significant events such as the start/end of a check, file processing and of course once for each duplicated block of code.

If for some reason you need to have multiple listeners, or in fact if you don't wish to be notified at all, you can use a CompositeAuditListener as a multi-cast dispatcher."
j'ai compris qu'il faut intégrer le code ci dessus mais où exactement l'intégrer et comment charger ces fonctions pr qu'on puisse les utiliser
[size=100]
/size,
Merci d'avance
Messages postés
3833
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 juin 2021
122
Pourquoi avoir posté dans la section C/C++ si tu utilises du C# ? C'est très confus !
Tu parles de C/C++, puis de C# et enfin tu postes un code en Java...

Tu ne peux pas utiliser de Java dans du C#, donc la classe "Checker" ne peut pas être utilisé "directement" dans ton code.
Plus de précision est nécessaire (notamment le langage que tu utilises !)

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Désolée pour cette confusion c vrai!
j'utilise en fait le c# dans ma dll, sinon comment je peux utiliser cet API dans ma dll ?? je n'ai vraiment aucune idée sur ça
Messages postés
3833
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 juin 2021
122
Si tu utilises du C#, alors je redirige cette conversation dans la section C#, plutôt que la conversation C/C++.

Je ne sais pas si tu pourras utiliser du code Java en C#, mes connaissances se limitent au C++. Il est clair que tu peux passer par une exécution de processus, quelque soit le langage, mais je ne suis pas sur que ce soit ce que tu veux.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question