AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Duplicate Code Finder 1.0

Duplicate Code Finder 1.0

Ein Thema von Gaijin · begonnen am 22. Okt 2009 · letzter Beitrag vom 3. Nov 2009
Antwort Antwort
Gaijin
Registriert seit: 6. Sep 2005
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
Miniaturansicht angehängter Grafiken
scr_dupcodefind_2_113.png   scr_dupcodefind_1_156.png  
MfG
Gaijin
Gaijin.at
 
Benutzerbild von himitsu
himitsu

 
Delphi 10.4 Sydney
 
#2
  Alt 29. Okt 2009, 10:29
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.
Miniaturansicht angehängter Grafiken
unbenannt_995.png  
  Mit Zitat antworten Zitat
Gaijin
 
#3
  Alt 29. Okt 2009, 12:54
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.
  Mit Zitat antworten Zitat
Blup

 
Delphi 2007 Professional
 
#4
  Alt 3. Nov 2009, 11:07
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 10.4 Sydney
 
#5
  Alt 3. Nov 2009, 11:35
@Blup: das geht ja noch.
ich hab nach über 8 Stunden abgebrochen, als ich mal versuchte meinen gesamten Projekteordner durchsuchen lassen wollte

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
  Mit Zitat antworten Zitat
Gaijin
 
#6
  Alt 3. Nov 2009, 15:27
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.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf