AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Werkzeuge Über Kommandozeile die Abhängigkeiten von Units auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Über Kommandozeile die Abhängigkeiten von Units auslesen

Ein Thema von hs-y · begonnen am 18. Jun 2009 · letzter Beitrag vom 25. Jun 2009
Antwort Antwort
Seite 2 von 3     12 3      
hs-y
(Gast)

n/a Beiträge
 
#11

Re: Über Kommandozeile die Abhängigkeiten von Units auslesen

  Alt 19. Jun 2009, 08:36
Sorry, aber ich habe keine Ahnung wie man das macht. Und ist die EXE nicht normalerweise ein Binary??? Da wird das doch dann schwieriger oder nicht?
[EDIT] Wenn ichs mir recht überlege, wäre es sogar günstiger das ganze aus der EXE extrahieren zu können!

Naja, man kann aber die Suchpfade von Delphi verwenden z.B: {BDS}\lib um einzelne Units zu suchen. Da wird dann die Zahl der Pfade schonmal deutlich begrenzt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.203 Beiträge
 
Delphi 12 Athens
 
#12

Re: Über Kommandozeile die Abhängigkeiten von Units auslesen

  Alt 19. Jun 2009, 09:04
Auslesen via MSDN-Library durchsuchenLoadResource und Co.

PACKAGEINFO (RCData)

[add]
z.B. siehe Hier im Forum suchenPACKAGEINFO
> http://www.delphipraxis.net/internal...ht=packageinfo
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#13

Re: Über Kommandozeile die Abhängigkeiten von Units auslesen

  Alt 19. Jun 2009, 10:24
Zitat von Tyrael Y.:
Nur rein Interresse halber....wozu Braucht man so eine Auflistung?
Ganz einfach: QA (Quality Assurance). Unter diesen Oberbegriff fallen z.B.

- statische Codeanalyse zur Fehlersuche
- Dokumentation
- Statistiken
- Versions- und Konfigurationskontrolle
- Continuous Integration / Buildskripte
- Abhängigkeitsanalyse

Delphi macht QA etwas schwer, da die Metadaten über die Projekte nicht über eine Standard-API ausserhalb von Delphi verfügbar sind. Innerhalb von Delphi kann man mit der OTA (Open Tools API) einige Informationen erhalten. Tools auf Kommandozeilenebene haben es schwer, da man ja z.B. noch nicht einmal die effektiven Source- und Libraryverzeichnisse auf einfache Weise ermitteln kann.

Für kleine Projekte, deren Unitabhängigkeiten der Entwickler noch leicht überschauen kann, braucht man so etwas natürlich nicht (da hat man halt Unit1.pas und Unit2.pas - bei Projekten, die sich noch in der Entwicklung durch häufiges Refactoring ändern und an denen viele Entwickler (also mehr als einer) arbeiten, ist Qualitätssicherung schon aufwendiger.

Man könnte sich schnell mit einem TRegEx statische Codeanalysetools selber schreiben, um z.B. leere except .. end Blöcke zu finden. Dazu braucht man aber die Verzeichnisse, in denen der Sourcecode liegt. Schon diese Information läßt sich nicht dem Compiler entlocken. Mit MSBUILD gibt es eine Möglichkeit, eine komplette Liste der Suchverzeichnisse zu erhalten - nur hilft dies nicht, wenn in der DPR die Units über relative Pfade eingebunden werden.

Mein Fazit: es wäre für Toolentwickler sehr hilfreich, wenn der Delphi Compiler eine vollständige Liste der verwendeten Units erzeugen könnte, mit Pfadangaben. Dann würde es vermutlich viel mehr Tools geben, insbesondere auch freie / kostenlose Tools, da der (sicher immens hohe) Aufwand für die Abhängigkeitsermittlung entfiele.

Cheers,
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#14

Re: Über Kommandozeile die Abhängigkeiten von Units auslesen

  Alt 19. Jun 2009, 10:54
Mit dem --depends-Switch (ab D9) geht's einfacher, es wird ein .d-File angelegt mit den Pfaden. Beispiel:
Code:
D:\DMX\M10\DCC32 -b t_kdf.pas --depends

t_kdf.d t_kdf.exe: t_kdf.pas \
      C:\TEMP\mem_util.dcu \
      C:\TEMP\HMACSHA1.dcu \
      C:\TEMP\SHA1.dcu \
      C:\TEMP\kdf_sha1.dcu \
      D:\DMX\M10\SysInit.dcu \
      D:\DMX\M10\System.dcu
Gruß Gammatester
  Mit Zitat antworten Zitat
hs-y
(Gast)

n/a Beiträge
 
#15

Re: Über Kommandozeile die Abhängigkeiten von Units auslesen

  Alt 19. Jun 2009, 11:56
Der depends switch ist natürlich genial...
[EDIT]Da ich meine Projekte eh über die Kommandozeile kompilieren möchte ist dies eine sehr gute Alternative. Habe dcc32 so oft benutzt den aber irgendwie immer übersehen. Danke!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.203 Beiträge
 
Delphi 12 Athens
 
#16

Re: Über Kommandozeile die Abhängigkeiten von Units auslesen

  Alt 19. Jun 2009, 12:02
hab grad mal nachgesehn und den scheint es mindestens ab D2006 zu geben (in D7 noch nicht)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#17

Re: Über Kommandozeile die Abhängigkeiten von Units auslesen

  Alt 19. Jun 2009, 12:10
Zitat von himitsu:
hab grad mal nachgesehn und den scheint es mindestens ab D2006 zu geben (in D7 noch nicht)
ja, daß ist aber nix neues, da ich in meinem Beitrag schon geschrieben habe, daß es ihn schon in D9 aka D2005 gibt
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.012 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#18

Re: Über Kommandozeile die Abhängigkeiten von Units auslesen

  Alt 19. Jun 2009, 12:46
Hi,

ich hab gerade mal dcc32 (von Delphi 2009) mit dem depends switch über ne unit gejagt, aber irgendwie kommt da keine Datei bei raus, welche die Abhändigkeiten auflistet. Die benutzten Units werden alle kompiliert. Hab ich irgendwas übersehen?

Nachtrag: Habs nochmal auf eine dkp losgelassen und siehe da, ich hab eine .d Datei zu diesem Package, welche aber sehr dürftige Abhängigkeiten abbildet (Units die aus anderen Packages kommen, werden nicht gelistet)

MfG
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#19

Re: Über Kommandozeile die Abhängigkeiten von Units auslesen

  Alt 19. Jun 2009, 12:56
Bei D9/D10 geht's bei mir auch mit Units, ich nehme mal an für Unit sample.pas gibt's dann ein sample.d (in welchem Verzeichnis? source, dcu, lib??)

Code:
KDF_SHA1.d KDF_SHA1.dcu: KDF_SHA1.PAS \
      C:\BP\SOURCE\43X\CRYPT\HMACSHA1.dcu \
      C:\BP\SOURCE\43X\CRYPT\SHA1.dcu \
      D:\DMX\M9\SysInit.dcu \
      D:\DMX\M9\System.dcu
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#20

Re: Über Kommandozeile die Abhängigkeiten von Units auslesen

  Alt 19. Jun 2009, 14:37
Zitat von gammatester:
Bei D9/D10 geht's bei mir auch mit Units, ich nehme mal an für Unit sample.pas gibt's dann ein sample.d (in welchem Verzeichnis? source, dcu, lib??)

Code:
KDF_SHA1.d KDF_SHA1.dcu: KDF_SHA1.PAS \
      C:\BP\SOURCE\43X\CRYPT\HMACSHA1.dcu \
      C:\BP\SOURCE\43X\CRYPT\SHA1.dcu \
      D:\DMX\M9\SysInit.dcu \
      D:\DMX\M9\System.dcu


Das sieht sehr gut aus, ich muss gestehen dass ich zwar schon den Schalter kannte, ihn aber nicht ausprobiert habe nachdem ein Delphi-Guru (iirc auf Stackoverflow) schrieb, dass der Schalter seltsamerweise keine Ausgabe erzeugt. Eventuell braucht der Guru mal wieder eine Meditation.
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 08:46 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