AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Freware: Programm zur Ermittlung von Unit-Abhängigkeiten
Thema durchsuchen
Ansicht
Themen-Optionen

Freware: Programm zur Ermittlung von Unit-Abhängigkeiten

Ein Thema von MaBuSE · begonnen am 1. Jun 2006 · letzter Beitrag vom 16. Feb 2007
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    
Benutzerbild von MaBuSE
MaBuSE
Registriert seit: 23. Sep 2002
Hallo,

ich habe heute mal schnell ein Programm geschrieben, das die Abhängigkeiten der Units in einem Delphi Programm ermittelt und diese dann darstellt.

Das Programm hat 2 Memo Felder.
In dem linken Memo werden alle verwendete Units des Projektes aufgelistet.
Units, die zu Delphi gehören, werden mit einem vorgestellten * gekennzeichnet.
(Die Dateien von Delphi7 im $(DELPHI)\lib Verzeichnis sind in der "DelphiLib.list" Datei aufgelistet, die vom Programm beim Start eingelesen wird.)
Units, zu denen kein Quelltext gefunden wurde, werden mit einem vorgestellten # gekennzeichnet.
In dem rechten Fenster werden die Abhängigkeiten in folgender Form dargestellt:
Code:
"Project1.dpr" -> "Unit1.pas";
"Project1.dpr" -> "Unit2.pas";
"Project1.dpr" -> "Unit3.pas";
"Unit1.pas" -> "Unit2.pas";
"Unit1.pas" -> "Unit3.pas";
"Unit2.pas" -> "Unit1.pas";
Dieses Format kann auch durch Graphvis ( http://www.graphviz.org/ ) in eine Grafik umgewandelt werden.
("dot.exe" und einige von dot.exe benötigte dll's liegen dem unitscanner bei.)



Anleitung zur Nutzung des Programmes:
  • Programm starten
  • scan Button drücken und ein Delphi Projekt auswählen (*.dpr)
  • warten
  • mit dem "call dot" Button kann eine Graphik erzeugt werden, die dann auch angezeigt wird.
Das Programm wurde zu meinem Eigenbedarf geschrieben, aber vieleicht findet es ja noch jemand interesannt

Da ich vom 06.06.06 bis 07.07. im Urlaub bin, kann ich erst ab 10.07. antworten.

Viel Spaß

ReleaseNotes:
  • v1.0: Erste Version
  • v1.1: Mehrsprachigkeit, Speichern der Optionen in Ini Datei, Suchpfade werden nun Unterstützt
Angehängte Dateien
Dateityp: zip unitscanner_187.zip (1,17 MB, 179x aufgerufen)
Dateityp: zip unitscanner11_119.zip (1,19 MB, 159x aufgerufen)
Dateityp: zip unitscanner11upd_163.zip (252,3 KB, 61x aufgerufen)
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
 
NicoDE
 
#11
  Alt 2. Jun 2006, 09:51
Vorsichtig frag: Gibt's das auch für Packages?
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

 
Delphi 10 Seattle Enterprise
 
#12
  Alt 2. Jun 2006, 09:57
Zitat von NicoDE:
Vorsichtig frag: Gibt's das auch für Packages?
Ich extrahiere im Moment nur die units aus dem uses Bereich.
Für Package müsste ich requires und contains auswerten,
das sollte auch kein großes Problem darstellen.

Das baue ich nach meinem Urlaub ein, das Notebook bleibt zuhause.
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

 
Delphi 10 Seattle Enterprise
 
#13
  Alt 2. Jun 2006, 10:10
Kleiner Tip am Rande:

Wie oben im Quelltext zu sehen wird das rechte Memo als temp.dot abgespeichert.

Das Memo kann natürlich auch editiert werden

(Units können gruppiert werden (z.B. nach Packages) einzelne Units können farblich gekennzeichnet werden, oder statt Elipse ein Dreieck, oder ...

Eine Anleitung zur dot Syntax findet Ihr hier:
http://www.graphviz.org/Documentation/dotguide.pdf

Viel Spaß
  Mit Zitat antworten Zitat
Gruber_Hans_12345

 
Delphi 2007 Professional
 
#14
  Alt 2. Jun 2006, 10:42
sieht shcon ganz nett aus

ein kleiner bug ist glaub ich, das du teilweise versuchst das JPEG anzuzeigen, und dieses noch nicht ganz fertig erstellt wurde. Bekomme dann ein "Keine Vorschau verfügbar" wenn ich dann aber ein Bild vorklicke (in dem Dir ist nur das eine Bild drinnen) dann zeigt er mirs richtig an.

was mir noch abgeht :

Das man nen Pfad eingeben kann (oder das prog gleich die Registry von Delphi ausliest) und alle # Sourcen dann in diesem Pfad sucht, damit diese Units dann auch rekursiv durchgearbeitet werden können.
und eventuell Units, die nicht gefunden werden (also nur dpr's sind) gleich mal farblich gekennzeichnet werden.
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

 
Delphi 10 Seattle Enterprise
 
#15
  Alt 2. Jun 2006, 10:49
Zitat von MaBuSE:
Da ich vom 06.06.06 bis 07.07. im Urlaub bin, kann ich erst ab 10.07. antworten.
bzw. ein Update erstellen
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
 
#16
  Alt 2. Jun 2006, 11:02
Zitat von MaBuSE:
Hallo,

ich habe heute mal schnell ein Programm geschrieben, das die Abhängigkeiten der Units in einem Delphi Programm ermittelt und diese dann darstellt.
Erm.. ohne Dein Tool jetzt schlecht machen zu wollen (ich habs mir ehrlich gesagt gar nicht angeguckt), aber ich denke auf der Basis von (Freeware-) ICARUS http://www.peganza.com/ läuft man auch sehr gut.

Zumal ICARUS nicht nur die Uses-List anguckt, sondern auch in die Files abtaucht und Dir z.B. auch sagen kann: "Hör mal, in Formular xyz steht Unit abc in der Uses list drin, aber Du verwendest nichts davon" (die kann also raus).
Sebastian Gingter
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

 
Delphi 10 Seattle Enterprise
 
#17
  Alt 2. Jun 2006, 11:23
Zitat von Phoenix:
Zitat von MaBuSE:
...ich habe heute mal schnell ein Programm geschrieben, das die Abhängigkeiten der Units in einem Delphi Programm ermittelt und diese dann darstellt.
Erm.. ohne Dein Tool jetzt schlecht machen zu wollen (ich habs mir ehrlich gesagt gar nicht angeguckt), aber ich denke auf der Basis von (Freeware-) ICARUS http://www.peganza.com/ läuft man auch sehr gut.
Zumal ICARUS nicht nur die Uses-List anguckt, sondern auch in die Files abtaucht und Dir z.B. auch sagen kann: "Hör mal, in Formular xyz steht Unit abc in der Uses list drin, aber Du verwendest nichts davon" (die kann also raus).
Ich brauchte ein Bild (Grafik) um die Komplexität von Programmen anhand der Unit Abhängigkeiten zu zeigen.
In einem Vortrag z.B. kommen Bilder viel besser als Listen.
Die Bilder geben direkt einen Eindruck von der "vernetzung" der Units untereinander.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
 
#18
  Alt 2. Jun 2006, 11:35
Ai.. naja, dafür bräuchte man dann den Pascal Analyzer, und der kostet wiederum Geld.. alles klar
Sebastian Gingter
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

 
Delphi 10 Seattle Enterprise
 
#19
  Alt 2. Jun 2006, 11:48
Zitat von Phoenix:
Ai.. naja, dafür bräuchte man dann den Pascal Analyzer, und der kostet wiederum Geld.. alles klar
Ich kenne den Pascal Analyzer, aber Solche Grafiken habe ich dort noch nicht gesehen.

Folgende Grafik wurde mit UnitScanner erstellt.

(Mit dem Einfügen folgender Zeile werden die Unitnamen ausgeblendet:
Code:
node [label=""]
)


(Bild anklicken um es in voller Größe zu sehen.)
  Mit Zitat antworten Zitat
Daniel G
 
#20
  Alt 2. Jun 2006, 11:53
Gefällt mir, auch wenn meine Projekte bislang nicht sooooo groß sind.


Das zweite Diagramm is' ja mal Ultra....
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    


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 15:37 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