![]() |
Nicht benötigte Units bereinigen
Hallo zusammen,
ich suche nach einer einfachen Möglichkeit alle Units zu finden, die im aktuellen Projekt nicht angeprochen und somit nicht benötigt werden. Hat einer einen Tipp wie man dies am einfachsten bewerkstelligen kann? Vielen Dank. Viele Grüße Horst Meyer |
AW: Nicht benötigte Units bereinigen
Hallo,
CN-Pack installieren, das ereugt dir im Menü einen Uses-Cleaner. LG Edmund |
AW: Nicht benötigte Units bereinigen
Hallo,
so einfach ist das allerdings nicht. Units haben
Delphi-Quellcode:
und
initialisation
Delphi-Quellcode:
Abschnitte. Schon ihre reine Anwesenheit im Projekt kann also den Programmablauf beeinflussen.
finalization
Zum Beispiel Units die weitere grafik-datei-formate bereitstellen. Die registrieren sich selbst, werden aber scheinbar nirgendwo verwendet. |
AW: Nicht benötigte Units bereinigen
Zitat:
|
AW: Nicht benötigte Units bereinigen
Alternativ könnte man die Map-Datei überprüfen, aber:
|
AW: Nicht benötigte Units bereinigen
![]() |
AW: Nicht benötigte Units bereinigen
Ausführliche MAP-Datei erstellen, alle Zeile, die mit Line numbers for beginnen, raussuchen. Sie enthalten alle Units, aus denen etwas ins Kompilat übernommen wurden.
Sollte für den Anfang eigentlich erstmal ausreichen. Und wenn ich das bei meinem ollen Delphi 7 richtig sehe, sind Units, die nur Resource-Strings enthalten, auch in der MAP-Datei aufgeführt. Jedenfalls finde ich in den MAP-Dateien von Programmen, die Indy nutzen auch die IdResourceStringsCore.pas, und die enthält (neben Kommentaren) nur Resource-Strings. Mal eben in PascalScript hingedaddelt:
Delphi-Quellcode:
Sollte so übernommen werden können.
program Test;
procedure CheckUnits(sFile : String); var i : Integer; s : String; slMap : TStringList; slUnits : TStringList; begin slMap := TStringList.Create; slMap.LoadFromFile(sFile); slUnits := TStringList.Create; for i := 0 to slMap.Count - 1 do begin if Copy(slMap[i],1,16) = 'Line numbers for' then begin s := Copy(slMap[i],18,1024); s := Copy(s,1,Pos('(',s) - 1); slUnits.Add(s); end; end; slUnits.Sort; sFile := ChangeFileExt(sFile,'.UsedUnits'); slUnits.SaveToFile(sFile); slUnits.Free; slMap.Free; end; begin CheckUnits('Programmname.map'); end. |
AW: Nicht benötigte Units bereinigen
![]() Mit dem Delphi Unit Dependency Scanner mache ich das. Der zeigt, u.a. von wie vielen Units die einzelne Unit genutzt wird. Wenn man den Trick raus hat, dann kann man sehr schön alle unnötigen Units aus dem Projekt werfen. Alle Units, die nur von einer Unit -also von der DPR- genutzt werden, sind unnötig. |
AW: Nicht benötigte Units bereinigen
Warum einfach wenn es auch umständlich geht. :wink:
Das einzig sinnvolle: Zitat:
|
AW: Nicht benötigte Units bereinigen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz