Средства для проверки copy-paste кода
Модератор: Модераторы
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
Средства для проверки copy-paste кода
Подскажите, пользуется ли кто чем, и чем можно пользоваться вообще? ^_^
Спасибо?
Спасибо?
- Little_Roo
- энтузиаст
- Сообщения: 639
- Зарегистрирован: 27.02.2009 18:56:36
- Откуда: Санкт-Петербург
Brainenjii писал(а):Подскажите, пользуется ли кто чем, и чем можно пользоваться вообще? ^_^
Спасибо?
Вот проверил - ваш текст копипастится... а конкретней можно?
код "скопипастил" - нажми ctl + F9, скомпилится ? - значит скопипащенный код в норме 
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
Имеется в виду - есть ли инструменты, показывающий - сколько участков кода похожих на скопированные из других мест этого же проекта... Как-то так
Поиск - Найти в файлах?
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
Код: Выделить всё
program project4;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes;
Procedure Proc1;
Var
aString: String = 'Hello world';
i: Integer;
Begin
For i := 1 To Length(aString) Do
Case aString[i] Of
'H': WriteLn('We meet letter H!');
'w': WriteLn('We meet letter w!');
' ':
Begin
WriteLn('We meet space!');
WriteLn('First word is "' + Copy(aString, 1, i - 1) + '"');
End;
End;
End;
Procedure Proc2;
Var
aString: String = 'Hi world';
i: Integer;
Begin
For i := 1 To Length(aString) Do
Case aString[i] Of
'H': WriteLn('We meet letter H!');
'w': WriteLn('We meet letter w!');
' ':
Begin
WriteLn('We meet space!');
WriteLn('First word is "' + Copy(aString, 1, i - 1) + '"');
End;
End;
End;
begin
Proc1;
Proc2;
end.
Очевидно, что Proc1 получено копипастой из Proc2. Я хочу найти инструмент, который проанализировав исходные файлы проекта ткнёт меня носом - где, возможно, было допущено копирование... Чтобы дать задание тем, кто это наваял переписать, без необходимости вручную пролапачивать десятки тысяч строк кода... Как-то так >_<
Brainenjii писал(а):Подскажите, пользуется ли кто чем, и чем можно пользоваться вообще? ^_^
Преподаем? Копи-пасте - это основной навык написания программ - нельзя покушаться на святое!
А по делу, есть програмулины для создания патчей, правда, они показывают разницу, и создают патч - что поменялось.
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
с патчами это всё конечно хорошо, но из тех что я знаю все программы такого толка прибиты шурупами к номерам строк, и идентичный код в разных местах считают разными творениями. Что меня мало интересует. Ищется именно инструмент по поиску кода, сделанного копированием. Не могу поверить, что такого нет, просто не могу сформулировать запрос в гугл...
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
Эту хрень нужно искать по словам text similarity, т.к. обычно ищут сходство текста безотносительно того, исходник это или нет.
Вот одна из утилит: http://dickgrune.com/Programs/similarity_tester/
Вот одна из утилит: http://dickgrune.com/Programs/similarity_tester/
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
Спасибо! По описанию то что нужно
