![]() |
Drucken des Interface-teil aller verwendeten Units
Hallo,
ich möchte gerne von einem Projekt mit vielen Units nur den interface teil mit und ohne Uses Exportieren oder Drucken. Leider finde ich sowas nicht in der IDE. Gibt es da eventuell ein Tool dem man z.b. das .dpr File gibt und das Tool Exportiert/Druckt mir das? Ich habe zwar schon gesucht, aber sehr wahrscheinlich falsch. So ungefähr sollte das aussehen.
Code:
Vielen dank im Voraus
Unit: unit1.pas
Procedure Test(s:String); Function NocheinTest(s:String):Integer Unit: Unit2.pas Procedure Poweroff; |
AW: Drucken des Interface-teil aller verwendeten Units
In meinem Optimizer ermittle ich demnächst von einer Unit ausgehend die darin benutzen Units.
Das brauche ich dann für Codevervollständigungen. Die ermittelten Abschnitte könnte ich recht problemlos in eine Datei speichern. Wenn Du Interesse hast, dann kann ich sowas mit einbauen und wir müssten uns entsprechend abstimmen. Würde aber schon noch ein paar Wochen dauern. |
AW: Drucken des Interface-teil aller verwendeten Units
Sinngemäß sowas?
Delphi-Quellcode:
Ist halt nur ein Pascalscript, sollte mit sehr wenig Aufwand in ein Konsolenprogramm übersetzbar sein.
program PrintMe;
function GetUnitFileName(sLine : String; sPath : String) : String; begin Result := Copy(sLine,Pos('''',sLine) + 1, Length(sLine)); Result := Copy(Result,1,Pos('''',Result) - 1); if Pos('..',Result) > 0 then Result := sPath + Result else if Pos(':' ,Result) = 0 then Result := sPath + Result; end; function GetUnitInfo(sUnit : String; sl : TStringList) : Boolean; var slUnit : TStringList; i : Integer; s : String; begin Result := FileExists(sUnit); if not Result then exit; slUnit := TStringList.Create; slUnit.LoadFromFile(sUnit); sl.Add(Format('Unit: %s',[ExtractFileName(sUnit)])); for i := 0 to slUnit.Count - 1 do begin s := Trim(AnsiLowerCase(slUnit[i])); if s = 'implementation' then begin sl.Add(''); break; end; if (Pos('procedure',s) = 1) or (Pos('function',s) = 1) then begin s := Trim(slUnit[i]); while Pos(' ',s) > 0 do s := AnsiReplaceStr(s,' ',' '); sl.Add(s); end; end; slUnit.Free; end; var i : Integer; sl : TStringList; slDPR : TStringList; sDPR : String; sUnit : String; sPath : String; begin sl := TStringList.Create; slDPR := TStringList.Create; sDPR := 'e:\Delphi\Projekt1\Projekt1.dpr'; sPath := ExtractFilePath(sDPR); slDPR.LoadFromFile(sDPR); for i := 0 to slDPR.Count - 1 do begin if Pos(' in ', slDPR[i]) > 0 then begin sUnit := GetUnitFileName(slDPR[i],sPath); GetUnitInfo(sUnit,sl); end; end; sl.SaveToFile(Format('%s.PrintMe',[sDPR])); slDPR.Free; sl.Free; end. |
AW: Drucken des Interface-teil aller verwendeten Units
Hi,
@stahli das ist nett von dir. Leider brauche ich das relativ schnell. @Delphi.Narium vielen dank für deine Mühe. Ich werde es heute noch ausprobieren. Nochmal vielen dank an euch |
AW: Drucken des Interface-teil aller verwendeten Units
Liste der Anhänge anzeigen (Anzahl: 1)
Klappt....
Ich habe ein Konsolenprogramm daraus gemacht. Aufruf mit:
Code:
:thumb:
PrintMe.exe DPRDatei
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:46 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