AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte DupeChecker - Duplikate im Source finden v1.3.5

DupeChecker - Duplikate im Source finden v1.3.5

Ein Thema von Union · begonnen am 28. Mär 2006 · letzter Beitrag vom 4. Dez 2021
Antwort Antwort
Seite 5 von 5   « Erste     345
Benutzerbild von Union
Union
Registriert seit: 18. Mär 2004
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:
  • Verarbeitet beliebig grosse Projekte
  • Findet Blöcke von dupliziertem Sourcecode
  • Wertet *.pas Dateien aus, beginnt ab implementation (über INI konfigurierbar)
  • Mindestgröße der als Duplikate erkannten Textblöcke über INI konfigurierbar
  • Zeigt die Treffer nach Zeilenanzahl sortiert an
  • Blendet den Sourcecode zur Kontrolle ein
  • Umfangreiche Sortier- und Filterfunktionen
  • Export der Duplikatsliste
Und vor allem ist er schnell und einfach zu bedienen:
  • Eingabe des Pfades, einer Datei oder einer Dateiliste (letzter benutzter Pfad wird in INI gespeichert)
  • Start drücken, etwas warten (z.B. 50000 Zeilen in 2,5 Sekunden)
  • Ergebnisse auswerten
Ich würde mich sehr über Anregungen sowie konstruktive Kritik freuen.
DupeCheck v 1.3.5
  • Nochmalige Geschwindigkeitssteigerung
  • Views (Liste/Hierachie) können mittels Ctrl-Mouseclick synchronisiert werden oder über Kontextmenü
  • Listenexport nach Excel
  • Verschiedene UI-Styles über Ini-Datei
  • in der Sourceanzeige "nebeneinander" werden die Blöcke nicht mehr selektiert, sondern die identischen Bereiche werden farblich hinterlegt
  • Besseres Speichermanagement für sehr grosse Projekte (getestet mit 2,5 Millionen Zeilen)
  • Als Dateiname kann auch eine Dateiliste angegeben werden. In dieser kann in jeder Zeile ein Dateiname oder ein Directory stehen.
  • Kontextmenüs in den Views
  • Sortieren und Filtern der Ansichten
  • Vergleichszähler auf 64 Bit geändert
DupeCheck v 1.3.4.1
  • Geschwindigkeit bis zu 30% schneller
  • Verarbeiten von Unterverzeichnissen
  • Verarbeiten einzelner Dateien
  • Entfernung von doppelten Duplikaten (!) aus der hierarchischen Anzeige
  • Verbessertes UI
  • Anzeige der Dateianzahl in Statuszeile
  • Eurekalog
DupeCheck v 1.3.3
  • Englische Benutzeroberfläche auf PC's mit Englischer Locale
  • Font kann über Systemmenü oder ini eingestellt werden
  • Position des Formulars, Spaltenbreiten und Splitterposition werden in ini gespeichert und bei Programmstart wieder ausgelesen

DupeCheck v 1.3 "BigMac"
  • Neue zusätzliche Visualisierung als Treeview. Dabei werden die Duplikate als Knoten angezeigt, die einzelnen Vorkommen im Sourcode als Childnodes. Leider wird die EXE dadurch fast 2x so groß. Naja, wer schön sein will muß leiden

DupeCheck v 1.2.1
  • Durch die Geschwindigkeitssteigerung wurden teilweise Duplikate falsch erkannt. Aufgrund Hinweis von Martin W behoben.

DupeCheck v 1.2 - Turbo
  • Geschwindigkeit der Analyse wurde um das bis zu 20-Fache gesteigert.
  • Division by zero tritt während der Fortschrittsanzeige nicht mehr auf, wenn Sourcecode kürzer als 100 Zeilen.

DupeCheck v 1.1
  • Pfadeingabe mit Auswahldialog über Button oder F4
  • Fehlermeldung, wenn im angegebenen Pfad keine Dateien existieren
  • Flackern der Listenanzeige beim Update behoben
  • Duplikate können durch Doppelklick auf Listeneintrag nebeneinander angezeigt werden mit synchronem Scrollen. Klick auf Headerzeile synchronisiert wieder auf die Anfangszeilen.
Angehängte Dateien
Dateityp: zip dupecheck_127.zip (932,6 KB, 98x aufgerufen)
Dateityp: zip dupecheck1330_394.zip (698,2 KB, 84x aufgerufen)
Dateityp: zip dupecheck1341_866.zip (810,5 KB, 52x aufgerufen)
Dateityp: zip dupecheck1350_363.zip (1,10 MB, 174x aufgerufen)
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
 
xcluster
 
#41
  Alt 8. Okt 2014, 13:52
Hallo Union!

Entschuldige, meine deutsche ist nicht die beste

Ist diese project tod? Keine weitere entwicklung?
Vielleicht du kannst die quelle code zum öffentlich machen?

MfG:
xcluster
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 11 Alexandria
 
#42
  Alt 8. Okt 2014, 14:35
Wenn alles perfekt funktioniert, dann müsste man ja grundsätzlich erstmal nichts dran ändern.

Gibt es denn irgendwelche Probleme oder hast du irgendwelche Wünsche?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

 
Delphi 10.4 Sydney
 
#43
  Alt 8. Okt 2014, 16:37
Perfekt ist ist noch nicht.
Beim Diff-Betrachten werden die Listen nicht 100% intelligent synchronisiert verschoben.


Und als ich es auf den Completten Source bei uns losgelassen habe schreibt er das er noch fast 2:00 Stunden benötigen würde
  Mit Zitat antworten Zitat
xcluster
 
#44
  Alt 9. Okt 2014, 07:51
Meine ideen:

1) Das programm sollte entspeichern der haupt fenster position (normal mit positionen; maximized [welche monitor])
2) Das programm sollte entspeichern die view ("Show Duplicate") fenster positionen (ich benutze immer als maximized)
3) Wenn ich doppel klicke ("Show Duplicates") auf ein liste item (on sheet "List"), das zeigt die "Show Duplicate" fenster, aber ich kann hier nicht editieren; das würde super!
4) Wenn ich scroll auf eine seite mit der mouse in the "Show Duplicate" fenster, die andere seite bewegt nicht
5) Ich brauche manchmal das einige datein sollte nicht prozessieren; zum beispiel: "*SDK*.pas" (mit wildchars)

Eine frage:
Was macht die "File list" checkbox auf der haupt fenster?

MfG:
xcluster
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

 
Delphi 7 Enterprise
 
#45
  Alt 9. Okt 2014, 09:10
1) The Main window position should normally be saved and restored. This should work with multimonitor. See [Layout] section in the ini file. However, window state (e.g. wsMaximized) isn't stored.
2) Positions of popup windows arent saved or restored by purpose.
3) This is by purpose, source code should be edited from within the IDE.
4) You're right, synchronising works only when using the keyboard.
5) You could create an input file listing using dir /s/b *.pas > mylist.txt and delete the lines you don't want to be processed. Then, enter mylist.txt into the filename edit box and check the filelist checkbox.

Zitat von readme.xt:
Checkbox Filelist:
When checked, the file name entered in the Edit field will be used as input for source file names and directory names. The file list can contain both single source file names as well as directories.
  Mit Zitat antworten Zitat
xcluster
 
#46
  Alt 17. Okt 2014, 08:33
1) Position saved (Maximized would be fine), but last monitor is not saved.
2)
3) Maybe double click to jump to the position in IDE as PAL (Pascal Analyzer from Peganza) does?
4) ok
5) Ok, sorry, I've missed to read the readme.txt

Found a bug:

They're highlighted as same but they isn't:

1:
<code>
{$ENDREGION 'PTZ'}

{$REGION 'DeviceIO'}
// with LDeviceIO do
// begin
// LOnvifServiceType := ostMedia;
//
// LGetAudioOutputs := RCOnvifDeviceIO.GetAudioOutputs.Create;
// ExecuteAndSave(LGetAudioOutputs);
//
// LGetAudioSources := RCOnvifDeviceIO.GetAudioSources.Create;
// ExecuteAndSave(LGetAudioSources);
//
// // LGetRelayOutputOptions := RCOnvifDeviceIO.GetRelayOutputOptions.Create;
// // ExecuteAndSave(LGetRelayOutputOptions);
//
// LGetVideoOutputs := RCOnvifDeviceIO.GetVideoOutputs.Create;
// ExecuteAndSave(LGetVideoOutputs);
//
// LGetVideoSources := RCOnvifDeviceIO.GetVideoSources.Create;
// ExecuteAndSave(LGetVideoSources);
//
// LOnvifServiceType := ostDevice;
//
// LGetRelayOutputs := RCOnvifDeviceIO.GetRelayOutputs.Create;
// ExecuteAndSave(LGetRelayOutputs);
// end;
{$ENDREGION 'DeviceIO'}

{$REGION 'AnalyticsDevice'}
</code>

2:
<code>
{$ENDREGION 'PTZ'}

{$REGION 'DeviceIO'}
// LDeviceIO: record
// LGetAudioOutputs: RCOnvifDeviceIO.GetAudioOutputs;
// LGetAudioSources: RCOnvifDeviceIO.GetAudioSources;
//// LGetRelayOutputOptions: RCOnvifDeviceIO.GetRelayOutputOptions;
// LGetRelayOutputs: RCOnvifDeviceIO.GetRelayOutputs;
// LGetVideoOutputs: RCOnvifDeviceIO.GetVideoOutputs;
// LGetVideoSources: RCOnvifDeviceIO.GetVideoSources;
// end;
{$ENDREGION 'DeviceIO'}

{$REGION 'AnalyticsDevice'}
</code>

Screenshot attached.

Greetings:
xcluster
Miniaturansicht angehängter Grafiken
sourcecode-dupechecker-bug.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

 
Delphi 7 Enterprise
 
#47
  Alt 17. Okt 2014, 08:36
Commented lines are ignored
  Mit Zitat antworten Zitat
xcluster
 
#48
  Alt 18. Okt 2014, 11:21
Ah, thx!
  Mit Zitat antworten Zitat
thierrybo
 
#49
  Alt 4. Dez 2021, 12:57
Hi,

can I force english language in INI files?

Thanks
  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 02:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf