![]() |
DupeChecker - Duplikate im Source finden v1.3.5
Liste der Anhänge anzeigen (Anzahl: 4)
Hallo Alle,
vielleicht kennt Ihr die Situation: Man arbeitet längere Zeit an einem größeren Projekt. Dabei geht man leider nicht immer nach OOP vor und arbeitet in großen Teilen mit Copy & Paste. Irgendwann kommt der Zeitpunkt, zu dem ein Projekt nicht mehr wartbar und ziemlich aufgeblasen ist. Man kann natürlich aus der Erinnerung und nach Gefühl vorgehen, um ein Refactoring vorzunehmen. Aber gerade die nachträgliche Suche nach Stellen, die man zu Funktionen zusammenfassen könnte, dauert dann beliebig lange. Genau hier hilft der DupeChecker:
DupeCheck v 1.3.5
DupeCheck v 1.3 "BigMac"
DupeCheck v 1.2.1
DupeCheck v 1.2 - Turbo
DupeCheck v 1.1
|
Re: DupeChecker - Duplikate im Source finden
Zitat:
erst einmal: sehr gute Idee! Bei der Pfadeingabe wäre ein Auswahldialog ganz nützlich übder den man den Pfad auswählen kann. Zu den Ergebnissen: Ich habe mal einige Projekte gescannt und es werden solche Stellen als Duplikate gefunden:
Delphi-Quellcode:
(Gut, das sind Duplikate, da sie überall im Programm vorkommen aber Sinn des Programmes ist es ja wohl doppelten Code zu finden. Gleiche Kontrollstrukturen (oder Teile davon) dürften da wohl keinen Sinn machen, oder?end; end; Eventuell sollten solche Stellen, die nur aus Schlüsselworten bestehen nicht mit verglichen werden. Ciao, Ralf |
Re: DupeChecker - Duplikate im Source finden
Hallo!
Die Idee finde ich auch gut! Jedoch funktioniert's bei mir nicht. Ich gebe einen gueltigen Pfad an und klicke auf Start. Es sagt dann immer "0 Zeilen gelsesen und 0 Duplikate in 0.01 s gefunden. 0 Zeilen verglichen" Vorschlaege: 1) Button zum Auswaehlen einer Datei 2) Wenn die eingegebene Datei nicht existiert, Fehler anzeigen. 3) Drag & Drop einer Datei ins Edit (so dass es den Pfad uebernimmt) |
Re: DupeChecker - Duplikate im Source finden
Zitat:
Zitat:
Und Kontrollstrukturen müssen mit in den Vergleich einfließen, denn jede Source-Datei besteht hauptsächlich aus solchen. Oder meinst Du man solle Blöcke ausfiltern, die ausschließlich aus Schlüsselworten bestehen? Zitat:
Zitat:
|
Re: DupeChecker - Duplikate im Source finden
Zitat:
Der Tree wird sichtbar langsam geloescht. Verwende mal BeginUpdate.. EndUpdate.. Zitat:
nicht fuer jedes Duplikat im Quelltext mit Goto zur angezeigten Stelle springen. |
Re: DupeChecker - Duplikate im Source finden
Zitat:
Zitat:
Zitat:
|
Re: DupeChecker - Duplikate im Source finden
Zitat:
Es wuerde vorerst genuegen, denn Quelltext in einem SynEdit anzuzeigen. Er soll, wahlweise zum Ziel od. Quelle springen koennen. |
Re: DupeChecker - Duplikate im Source finden
hi,
dies
Delphi-Quellcode:
soll gleich das
FileImportHTML: TMenuItem;
FileImportXML: TMenuItem; ImportMenuSep1: TMenuItem; FileImportHEX: TMenuItem; FileExport: TMenuItem; FileExportRTF: TMenuItem; FileExportHTML: TMenuItem; FileMenuSep4: TMenuItem; PrintFile: TMenuItem; PrintAllFiles: TMenuItem; PrintBlock: TMenuItem; FileMenuSep5: TMenuItem; ExitProg: TMenuItem;
Delphi-Quellcode:
sein.
InsertMenuSep1: TMenuItem;
InsertDateTime: TMenuItem; InsertMenuSep3: TMenuItem; InsertASCII: TMenuItem; InsertMenuSep4: TMenuItem; InsertColor: TMenuItem; MacroMenu: TMenuItem; MacroRecord: TMenuItem; MacroMenuSep1: TMenuItem; MacroLoad: TMenuItem; MacroSave: TMenuItem; MacroMenuSep2: TMenuItem; MacroPlay: TMenuItem; Was ich aber bezweifeln möchte :mrgreen: |
Re: DupeChecker - Duplikate im Source finden
@kalmi01
Ich habe die von Dir angegebenen Source-Blöcke in eine .pas Datei kopiert und den DupeCheck drüber laufen lassen. Die Stellen wurden nicht als Duplikate erkannt. Vielleicht kannst Du mir helfen, indem Du mir
|
Re: DupeChecker - Duplikate im Source finden
Zitat:
ich meine, daß wenn im Ergebnis nur Schlüsselworte zu finden sind dann soltte dies nicht als Ergebnis gewertet werden: Irgendwo im Source befinden sich beispielsweise immer wieder stark geschachtelte Schleifen oder if-Abfragen, dann kommt es unter Umständen dazu, daß das Ende dieser Schelien/if-Abfragen als Duplikat erkannt wird:
Delphi-Quellcode:
So etwas sollte man dann rauslassen. Ansonsten, wie gesagt, die Idee is super, so kann man herausfinden wo man am besten mit den Refactoring anfängt.
(ab hier wird das folgende als Duplikat erkannt:)
end; end; end; end; end; end; end; end; Ciao, Ralf |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz