Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#7

AW: Nicht benötigte Units bereinigen

  Alt 16. Nov 2021, 14:03
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:
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 forthen 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.
Sollte so übernommen werden können.
  Mit Zitat antworten Zitat