Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Duplicate Code Finder 1.0 (https://www.delphipraxis.net/142115-duplicate-code-finder-1-0-a.html)

Gaijin 22. Okt 2009 09:02


Duplicate Code Finder 1.0
 
Liste der Anhänge anzeigen (Anzahl: 2)
Duplicate Code Finder sucht nach doppelten Codeteilen in Quellcodedateien oder anderen Textdateien.

Die Anzahl der doppelten Zeilen kann eingestellt werden. Mehrfache Leerzeichen, Tabulatoren und Kommentare können bei der Suche ignoriert werden.

Kommentare in folgenden Programmiersprachen werden unterstützt:
  • Basic (z.B. Visual Basic, Visual Basic.NET)
  • C (z.B. C++, C++.NET oder C#)
  • Pascal (z.B. Object Pascal)
  • sowie andere Programmiersprachen, deren Kommentar-Syntax einer der oben genannten Sprachen entspricht.
Duplicate Code Finder kann auch von einem USB-Stick betrieben werden.

Direktdownload (33 KB, RAR, .NET Framework 2.0)
Produktseite

himitsu 29. Okt 2009 11:29

Re: Duplicate Code Finder 1.0
 
Liste der Anhänge anzeigen (Anzahl: 1)
Wenn ich nach dem Finden oben so durch die Liste geh (Mausklicks über Cursortasten),
dann stützt dein Programm oftmals nach ein paar Mal ab.

Auf [Weiter] Klicken bringt da nichts, da ab dann die Memos einfach leer bleiben


Code:
Informationen über das Aufrufen von JIT-Debuggen
anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

************** Ausnahmetext **************
System.ArgumentOutOfRangeException: InvalidArgument=Value mit dem Wert 686 ist für index ungültig.
Parametername: index
   bei System.Windows.Forms.ListView.ListViewItemCollection.get_Item(Int32 index)
   bei System.Windows.Forms.ListView.set_VirtualListSize(Int32 value)
   bei DupCodeFinder.formDupCode.cmbFiles1_SelectedIndexChanged(Object sender, EventArgs e)
   bei System.Windows.Forms.ComboBox.OnSelectedIndexChanged(EventArgs e)
   bei System.Windows.Forms.ComboBox.set_SelectedIndex(Int32 value)
   bei System.Windows.Forms.ComboBox.set_Text(String value)
   bei DupCodeFinder.formDupCode.lvMatches_SelectedIndexChanged(Object sender, EventArgs e)
   bei System.Windows.Forms.ListView.OnSelectedIndexChanged(EventArgs e)
   bei System.Windows.Forms.ListView.WmReflectNotify(Message& m)
   bei System.Windows.Forms.ListView.WndProc(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Geladene Assemblys **************
mscorlib
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.42 (RTM.050727-4200).
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
----------------------------------------
DupCodeFinder
    Assembly-Version: 1.0.0.0.
    Win32-Version: 1.0.0.0.
    CodeBase: file:///C:/Dokumente%20und%20Einstellungen/Administrator/Desktop/dupcodefind/DupCodeFinder.exe.
----------------------------------------
System.Windows.Forms
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.42 (RTM.050727-4200).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
----------------------------------------
System
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.42 (RTM.050727-4200).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll.
----------------------------------------
System.Drawing
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.42 (RTM.050727-4200).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
----------------------------------------
System.Windows.Forms.resources
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.42 (RTM.050727-4200).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
----------------------------------------
System.Xml
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.42 (RTM.050727-4200).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll.
----------------------------------------
mscorlib.resources
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.42 (RTM.050727-4200).
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
----------------------------------------

************** JIT-Debuggen **************
Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
Konfigurationsdatei der Anwendung oder des Computers
(machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

Zum Beispiel:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
Ausnahmen an den JIT-Debugger gesendet, der auf dem
Computer registriert ist, und nicht in diesem Dialogfeld behandelt.

Gaijin 29. Okt 2009 13:54

Re: Duplicate Code Finder 1.0
 
Zitat:

Zitat von himitsu
Wenn ich nach dem Finden oben so durch die Liste geh (Mausklicks über Cursortasten),
dann stützt dein Programm oftmals nach ein paar Mal ab.

Auf [Weiter] Klicken bringt da nichts, da ab dann die Memos einfach leer bleiben

Das kann ich leider nicht nachvollziehen.

Ich habe eine mögliche Ursache gefunden, vielleich kommt jetzt der Fehler bei dir nicht mehr.
Im Beta-Bereich habe ich die neue Version hochgeladen, falls du sie testen möchtest.

Blup 3. Nov 2009 12:07

Re: Duplicate Code Finder 1.0
 
Die Auswertung meines Projekts(Delphi) hat ca. eine halbe Stunde gedauert.
Offensichtlich werden auch die Interface-Abschnitte verglichen.
Insbesondere bei Formularen wären es sinnvoller nur Implementation-Abschnitte zu berücksichtigen.

Kann den Fehler bestätigen:
Code:
************** Ausnahmetext **************
System.ArgumentOutOfRangeException: InvalidArgument=Value mit dem Wert 306 ist für index ungültig.
Parametername: index
   bei System.Windows.Forms.ListView.ListViewItemCollection.get_Item(Int32 index)
   bei System.Windows.Forms.ListView.set_VirtualListSize(Int32 value)
   bei DupCodeFinder.formDupCode.cmbFiles2_SelectedIndexChanged(Object sender, EventArgs e)
   bei System.Windows.Forms.ComboBox.OnSelectedIndexChanged(EventArgs e)
   bei System.Windows.Forms.ComboBox.set_SelectedIndex(Int32 value)
   bei System.Windows.Forms.ComboBox.set_Text(String value)
   bei DupCodeFinder.formDupCode.lvMatches_SelectedIndexChanged(Object sender, EventArgs e)
   bei System.Windows.Forms.ListView.OnSelectedIndexChanged(EventArgs e)
   bei System.Windows.Forms.ListView.WmReflectNotify(Message& m)
   bei System.Windows.Forms.ListView.WndProc(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Geladene Assemblys **************
mscorlib
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.42 (RTM.050727-4200).
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
----------------------------------------
DupCodeFinder
    Assembly-Version: 1.0.0.0.
    Win32-Version: 1.0.0.0.
    CodeBase: file:///C:/Dokumente%20und%20Einstellungen/rkockel/Desktop/DupCodeFinder.exe.
----------------------------------------
System.Windows.Forms
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.42 (RTM.050727-4200).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
----------------------------------------
System
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.42 (RTM.050727-4200).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll.
----------------------------------------
System.Drawing
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.42 (RTM.050727-4200).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
----------------------------------------
System.Windows.Forms.resources
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
----------------------------------------
System.Xml
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.42 (RTM.050727-4200).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll.
----------------------------------------
mscorlib.resources
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.42 (RTM.050727-4200).
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
----------------------------------------
Edit:
Scheinbar wird auch nur eine übereinstimmende Stelle bei 2 Dateien gefunden, auch wenn diese an mehreren Stellen über gleichen Text verfügen. Setzt man den Cursor in einen der angezeigten Vergleichstexte, verschwindet die farbliche Markierung des übereinstimmenden/nicht übereinstimmenden Bereichs. Es wäre schön wenn der Dateibetrachter als externes Tool 'Beyond Compare' einstellen könnte oder zumindest die Darstellung in ähnlicher Weise erfolgt.

himitsu 3. Nov 2009 12:35

Re: Duplicate Code Finder 1.0
 
@Blup: das geht ja noch.
ich hab nach über 8 Stunden abgebrochen, als ich mal versuchte meinen gesamten Projekteordner durchsuchen lassen wollte :oops:

PS: kann man eigentlich mehrere Dateimasken angeben?
hab hier Einiges in .INC ausgelagert und Anderes natürlich in den .PAS .

*.* geht nicht, dann da lief er grad auf die belgium.osm und ich werd' ihn gleich über'n Taskmanager abschießen, weil die Anwendung nicht mehr reagiert.

[add]
selber Fehler in Beta

Gaijin 3. Nov 2009 16:27

Re: Duplicate Code Finder 1.0
 
Ich kann zwar immer noch keinen Fehler finden, aber ich werden das weiter testen und beobachten.

@Blup
Das Programm ist grundsätzlich nicht an eine bestimmte Programmiersprache (z.B. Pascal) gebunden. Interface-Abschnitte werden wie alle anderen Qodezeilen behandelt. Die einzige Sprachunterscheidung erfolgt bei Kommentaren.

Zitat:

Scheinbar wird auch nur eine übereinstimmende Stelle bei 2 Dateien gefunden
Möglicherweise ist die Anzahl der übereinstimmenden Zeilen kleiner als der eingestellte Schwellwert. (Kommentare und Leerzeilen werden nicht berücksichtigt.)

@himitsu
Derzeit wird nur eine Dateimaske unterstützt. Eine Erweiterung auf meherer Masken sollte aber kein Problem sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz