![]() |
AW: Delphi Historie / Überblick über die verschiedenen Delphi Versionen
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Hängt als A0 im meinem "Büro" in der Firma. :cheer: |
AW: Delphi Historie / Überblick über die verschiedenen Delphi Versionen
Zitat:
Es sollte aber kein Problem sein, einen einfachen "Parser" zu schreiben, der nur die
Delphi-Quellcode:
findet und daraus eine Dot-Datei für
Txyz = class(Tabc)
![]() Da würde ja dieses einfache Format reichen:
Code:
Der Quellcode ist ja bei den meisten Delphi Versionen dabei.
digraph ObjektHierarchie{
TObject -> Exception Exception -> EExternal EExternal -> EMathError TObject -> TPersistent TPersistent -> TCpmonent } Die Schwierigkeit wäre dann "nur" alle Objekte zu erkennen. Farbig markieren könnte man dann z.B. RTL, VCL, FMX oder Class, Interface, ... oder Community, Professional, Enterprise oder ... Dazu wäre dann ein CSV mit den verschiedenen Informationen hilfreich, aus denen man dann die Dot Dateien erstellen kann. z.B.
Code:
Das wäre auch ein schönes Projekt für Anfänger oder leicht Fortgeschrittene um den Umgang mit Textdateien zu erlernen.
Vorfahre;Objekt;Lib;Typ;Ver;...
;TObject;RTL;Class;All;... TObject;Exception;RTL;Error;Class;All;... Exception;EExternal;RTL;Error;Class;All;... EExternal;EMathError;RTL;Error;Class;All;... TObject;TPersistent;VCL;Class;All;... TPersistent;TCpmonent;VCL;Class;All;... Die Dateien liegen in "C:\Program Files (x86)\Embarcadero\Studio\21.0\source". (Statt der 21.0 steht da natürlich die entsprechende IDE Version eures Delphies -> Kann man in der Versionen Listen oben nachlesen :wink:) In der Unit System.IOUtils.pas liegen 3 "Klassen" (Ja, ich weiß es sind Records) mit denen man das Dateihandling relativ einfach hinbekommt. (TDirectory, TPath und TFile) Zum Parsen kann das File einfach in eine TStringList (Oder TMemo) geladen werden.
Delphi-Quellcode:
oder
sl.LoadFromFile(Dateiname)
Delphi-Quellcode:
.
TMemo1.Lines.LoadFromFile(Dateiname)
Dann kann man ganz einfach die die Zeilen zugreifen.
Delphi-Quellcode:
Datei Schreiben geht auch analog mit
for i := 0 to sl.Count -1 do
begin // Zugriff auf Zeile i s := sl[i]; // mach was mit s:string ... end;
Delphi-Quellcode:
Wenn man davon ausgeht, dass Objektname und "= class ( Vorgänger )" in einer Zeile stehen, könnte man zum Analysieren der Zeilen z.B. alle WhiteSpaces entfernen und mit Pos nach '=class(' suchen.
AusgabeMemo.Lines.SaveToFile(AusgabeDateiname);
Wenn gefunden, dann die Zeile genauer analysieren. Das ist nicht die beste Methode aber von einem Anfänger gut umzusetzen. Alternativ könnte man auch die Datei (sl.Text) mit RegEx durchsuchen. oder, oder oder ... Es gibt viele Möglichkeiten. Bis hin zu einem Parser mit "Lex" und "Yacc". Wenn Du dein Projekt veröffentlichst, erstelle bitte ein neues Thema und verlinke es hier :thumb: Viel Spaß. MaBuSE |
AW: Delphi Historie / Überblick über die verschiedenen Delphi Versionen
Zitat:
(Ich überlegen gerade, ob ich das damals selbst eingebaut hatte oder es nur einfach total praktisch fand.) |
AW: Delphi Historie / Überblick über die verschiedenen Delphi Versionen
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Ich habe mal eben in der Mittagspause in 15 Min was zusammengebastelt. Das Programm scannt nur alle *.pas Dateien und gibt alle Zeilen mit "=class(" aus. (Mehr nicht!) Wie stellt man denn so was in der Grafik dar? (Das gab es zu D7 Zeiten ja teilweise so noch nicht.)
Delphi-Quellcode:
oder
TWinRTGenericImportS2O<S1, S2: IInspectable; O: IUnknown> = class(TWinRTGenericImportS2<S1, S2>)
Delphi-Quellcode:
TDispatchSilencer = class(TInterfacedObject, IUnknown, IDispatch)
|
AW: Delphi Historie / Überblick über die verschiedenen Delphi Versionen
Zitat:
|
AW: Delphi Historie / Überblick über die verschiedenen Delphi Versionen
Zitat:
Die Schreibweise von Generics kann man ja auch überlegen/übernehmen. (z.B. alles in den spitzen Klammern ignorieren, dafür in einer anderen Farbe) Graphvis kann auch zu den Grafiken map Dateien erstellen, dann kannst Du z.B. jedes Objekt "klickbar" machen. Die Url muss dann natürlich in der dot Datei angegeben werden. (z.B. Link auf Unit) (siehe ![]() |
AW: Delphi Historie / Überblick über die verschiedenen Delphi Versionen
Zitat:
|
AW: Delphi Historie / Überblick über die verschiedenen Delphi Versionen
Zitat:
![]() Da kannst du es Downloaden und ausdrucken. |
AW: Delphi Historie / Überblick über die verschiedenen Delphi Versionen
Zitat:
Später bei Apple weiterentwickelt als "Apple Pascal", und für die grafische Oberfläche von "Lisa" und "Macintosh" verwendet. P.S.: An der Uni hatten wir Turbo Pascal für CP/M auf 8 Zoll Disketten zur Programmierung einer Kristallzuchtanlage. Die Binaries wurden auf EPROMs gebrannt und in den Zielrechner gesteckt. Debugging? Parameter mit Drehwählern einstellen und schauen, obs klappt... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:58 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