Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Replace 是否有在不同文件中查找相同零件的应用程序?_Replace_Copy Paste - Fatal编程技术网

Replace 是否有在不同文件中查找相同零件的应用程序?

Replace 是否有在不同文件中查找相同零件的应用程序?,replace,copy-paste,Replace,Copy Paste,我有一个遗留的HTML网站,我需要添加一些功能。只要看一下,我就注意到每个HTML文件中都有许多“公共”部分—页脚、一些脚本块、页眉等。我想将所有这些部分移动到单独的文件中(现在使用SSI将它们包括在内)—这将使理解该项目更加容易。但是,有些块看起来很相似,但有点不同(例如,不同的类名)。因此,直接的剪切/粘贴将不起作用-我必须仔细检查我移除的每一块。我不想这样做-有太多的文件。我想知道是否有一个应用程序可以比较一堆文件并找到相同的块(并非所有文件中都必须存在) 谢谢。你想要一份工作 许多克隆检

我有一个遗留的HTML网站,我需要添加一些功能。只要看一下,我就注意到每个HTML文件中都有许多“公共”部分—页脚、一些脚本块、页眉等。我想将所有这些部分移动到单独的文件中(现在使用SSI将它们包括在内)—这将使理解该项目更加容易。但是,有些块看起来很相似,但有点不同(例如,不同的类名)。因此,直接的剪切/粘贴将不起作用-我必须仔细检查我移除的每一块。我不想这样做-有太多的文件。我想知道是否有一个应用程序可以比较一堆文件并找到相同的块(并非所有文件中都必须存在)

谢谢。

你想要一份工作

许多克隆检测器只能找到相同的代码行或相同的令牌序列。那些对你不起作用。您需要了解如何检测参数化克隆的克隆检测器

一些基于令牌的检测器将发现参数变化很小的克隆;e、 例如,如果只是一个不同的类名,那么这些可能适合您。这种检测器通常产生非结构化的克隆序列;以下是从基于令牌的检测器的角度进行的克隆:

   }   void  foo(

为了避免这种克隆,令牌检测器通常坚持使用非常长的令牌序列,这意味着它们可能会错过大小适中但有趣的克隆

我们的克隆人将发现参数可能是复杂结构的参数化克隆。它通过解析感兴趣的代码并比较抽象语法树来实现这一点,抽象语法树表示基本代码减去所有布局和空白。如果树或树序列不同,则可以建议一个表示整个子树的参数(例如,表达式、htmt标记组、是否存在属性等)。因为它是在树上运行的,所以它不能提出上述克隆类型。这反过来意味着它可以找到有意义的中等大小的克隆,以及大型克隆

CloneDR根据精确的语言描述进行操作,以生成精确匹配语言结构的克隆。有一个专门针对HTML的版本

(我是架构师;你可以在维基百科页面上看到我在CloneDR上的技术论文。)

   }

   void bar(