AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Klassen mit Pascal-Script in der Script-Engine (paxCompiler) auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Klassen mit Pascal-Script in der Script-Engine (paxCompiler) auslesen

Ein Thema von hubert17 · begonnen am 19. Okt 2023 · letzter Beitrag vom 20. Okt 2023
Antwort Antwort
hubert17

Registriert seit: 20. Dez 2022
2 Beiträge
 
#1

Klassen mit Pascal-Script in der Script-Engine (paxCompiler) auslesen

  Alt 19. Okt 2023, 13:03
Hallo Zusammen,

ich bin kein Software-Entwickler, sondern nur Anwender. Meine Frage bezieht sich eher auf die Anwendung von Pascal-Script.

Das Softwareprogramm wurde wohl in Delphi geschrieben und enthält als Script-Engine den paxCompiler. Hier kann ich Pascal-Scripte zur Ausgabe und Auswertung von Daten schreiben und anzeigen lassen.
Als Units sind hier DB, Classes, SysUtils, Variants, Dialogs und DateUtils, sowie vom Programm bereitgestellte Units eingebunden. Auch das Einbinden eigener Units ist möglich. Alle Units müssen im Deklarationsteil (Uses) aufgeführt werden.

Meine Frage bezieht sich nun auf die vom Programm bereitgestellten Units.

Ist es möglich die Klassen, Methoden, Eigenschaften, Funktionen usw. dieser Units in der Pascal-Script-Anwendung auszulesen und aufzulisten? Weiterhin werden durch das Programm auch Variablen bereitgestellt. Ist hier die Auflistung auch möglich?

Ich hatte beim Softwarehersteller angefragt, ob es für die Erstellung eigener PascaL-Scripte eine Dokumentation / Auflistung gibt. Dies wurde verneint, mit dem Hinweis, das Scripte kostenpflichtig erstellt werden können.

Da ich diese gerne selber schreibe deshalb hier mein Beitrag. Vom Prinzip komme ich schon an die gewünschten Daten, geht aber etwas komplizierte nur per jeweiliger Datenbankabfrage.

Wäre für Antworten dankbar.

Gruß Hubert
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Klassen mit Pascal-Script in der Script-Engine (paxCompiler) auslesen

  Alt 19. Okt 2023, 17:37
Direkt helfen kann ich nicht,

aber falls sich hier sonst niemand findet,
dann könnest du dich an https://apexdatasolutions.com wenden. (ist zumindestens der letzte bekannte Besitzer)

Sie hatten damals den paxCompiler vom originalen Entwickler gekauft. (www.paxcompiler.com)
Allerdings sah ich jetzt auf die Schnelle nichts dazu, auf deren Webseite.
k.A. was aus diesem Produkt geworden ist.

Zitat:
Ich hatte beim Softwarehersteller angefragt
Dem Entwickler eurer Software, oder bei dem jener Komponente?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (19. Okt 2023 um 17:40 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

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

AW: Klassen mit Pascal-Script in der Script-Engine (paxCompiler) auslesen

  Alt 19. Okt 2023, 19:15
Habe einen in Delphi 7 geschriebenen Editor, der als Scriptengine "RemObjects Pascal Script" nutzt.

Im Quelltext werden zu exportierende Prozeduren in der Form Sender.AddFunction(@MyAbout, 'procedure About;'); aus dem Programm heraus nach Pascalscript exportiert. In Pascalscript kann in diesem Beispiel die Prozedur About aufgerufen werden. Sie zeigt den entsprechenden Dialog des Editors.

Die Zeichenfolge 'procedure About;' kann ich auch in der Exe finden.

Daraus entstand dann die Idee es mal über die Kommandozeile zu versuchen:
Code:
find /i "procedure " name_der.exe > Prozeduren.txt
find /i "function " name_der.exe > Funktionen.txt
Es wird jeweils eine ziemlich lange Liste ausgegeben, die, wenn ich das recht überblicke, u. a. alle in Pascalscript nutzbaren Prozeduren / Funktionen enthält, aber leider auch ziemlich viele andere Fundstellen.

Aber eine manuelle "Nacharbeit" sollte da weiterhelfen können.

Die exportierten Variabeln sind ebenfalls in der Exe zu finden, allerdings finde ich keine Möglichkeit sie auf der Kommandozeile mit Find zu finden In der Hexadezimalansicht der Exe (mit 'nem entsprechenden Viewer) sind (vermutlich) alle Prozeduren, Funktionen und exportierten Variabeln, zwischen ÿÿÿÿ und jeweils zweimal Hex 00 und einem weiteren hexadezimalen Wert, zu finden.

Bei dieser Art der Auswertung solltes Du wissen was Du tust, aber für einen groben Überblick könnte es eventuell reichen.

Quelltextauszug zum Editor:
Delphi-Quellcode:
  // Registrierung der in dieser Unit implementierten Funktionen für PascalScript.
{tkEditor}  Sender.AddFunction(@MyAdoxCreate,' function AdoxCreate(sConnectionString : String) : Boolean;');
{tkEditor}  Sender.AddFunction(@MyCloseEditor, 'procedure CloseEditor;');
{tkEditor}  Sender.AddFunction(@MyCopyStringToClipboard,' procedure CopyStringToClipboard(inText : TStrings);');
{tkEditor}  Sender.AddFunction(@MyCopyToHTML,' procedure CopyToHTML(sLanguage : String);');
{tkEditor}  Sender.AddFunction(@MyExportToHTML,' procedure ExportToHTML(sFileName : String);');
{tkEditor}  Sender.AddFunction(@MyConvertSourceToHTML,' procedure ConvertSourceToHTML(sLanguage : String; sl : TStrings);');
{tkEditor}  Sender.AddFunction(@MyGetDBStatus,'function GetDBStatus : String;');
In der Ausgabe von Find dazu gefunden:
Code:
function AdoxCreate(sConnectionString : String) : Boolean;
procedure CloseEditor;
procedure CopyStringToClipboard(inText : TStrings);
procedure CopyToHTML(sLanguage : String);
procedure ExportToHTML(sFileName : String);
procedure ConvertSourceToHTML(sLanguage : String; sl : TStrings);
function GetDBStatus : String;
Und natürlich hab' ich keine Ahnung, ob das bei Deinem Programm auch so gehen könnte und das für Dich einen gangbaren Weg darstellt.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.371 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Klassen mit Pascal-Script in der Script-Engine (paxCompiler) auslesen

  Alt 19. Okt 2023, 20:45
Vorweg:
Ich hatte Apex damals angefragt, nachdem sie den paxCompiler übernommen hatte. Von dort kamen sehr hohe Preise, nicht gehaltene Releasetermine und dann gar nichts mehr. Das ist extrem schade, denn paxCompiler war der beste Scriptcompiler, den es für Delphi je gab und gibt. Dass der dann durch die Übernahme einfach so vom Markt verschwunden ist...

Man konnte den paxCompiler auf verschiedene Arten verwenden. Entweder man liefert die Quelltexte mit und kompiliert on-the-fly oder man liefert nur die kompilierte Version mit. In letzterem Fall kommt man an die Klassendefinitionen nur schlecht heran, wenn es keine IDE mit Syntaxergänzung gibt. Theoretisch kann man die selbst bauen, aber das ist ein größerer Aufwand und eine Lizenz für den paxCompiler gibt es auch nicht mehr.

Ich persönlich habe den paxCompiler damals richtig schön eingebaut. Ich habe voll auf Interfaces gesetzt und genau die gleichen Units in das Hostprogramm mit Delphi einkompiliert und als API für den paxCompiler zur Verfügung gestellt. Das Programm hat also auch genau die gleichen Interfaces verwendet, so dass dort auch nichts fehlte (eat your own dog food...). Leider war der paxCompiler auch der einzige Script Compiler für Delphi, der das so kann.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
hubert17

Registriert seit: 20. Dez 2022
2 Beiträge
 
#5

AW: Klassen mit Pascal-Script in der Script-Engine (paxCompiler) auslesen

  Alt 20. Okt 2023, 08:16
Erstmal vielen Dank für Beiträge.

Ich hatte hier im Forum schon nach dem paxCompiler gesucht und auch eure früheren Beiträge hierzu gelesen.

Ich denke die Vorgehensweise mit dem paxCompiler wird der Softwarehersteller schon ungefähr so gemacht haben, wie Sebastian es beschrieben hat.
Hier mal eine Downloadmöglichkeit zum paxCompiler, die ich gefunden habe: https://torry.net/components/tools/s...iler#downloads
Da ich die Software aber nicht beeinflussen kann, hilft mir das nicht weiter.

Auf eine ähnliche Idee wie Delphi.Narium bin ich auch gekommen, mit suchen und finden.
Code:
find /i "procedure " name_der.exe > Prozeduren.txt
find /i "function " name_der.exe > Funktionen.txt
hat leider bei mir kein brauchbares Ergebnis ergeben.

Meine vorgehensweise, ich habe mir den http://www.pe-explorer.com/ runtergeladen und die exe-Datei dort eingelesen. Die Liste für die VCL Objects ist nun 20.415 Zeilen lang. Natürlich werden nicht alle Objekte für Pascal-Scrript gebraucht, aber welche es nun sind, deswegen meine Frage hier.

Nun gut, wenn es keine Möglichkeit gibt, werde ich weiterhin die über die Datenbankabfrage gehen bzw. einige bereitgestellt Scripte nutzen.

Danke nochmal, für eure Mühe.
  Mit Zitat antworten Zitat
Jens01

Registriert seit: 14. Apr 2009
670 Beiträge
 
#6

AW: Klassen mit Pascal-Script in der Script-Engine (paxCompiler) auslesen

  Alt 20. Okt 2023, 14:38
Zitat:
Dass der dann durch die Übernahme einfach so vom Markt verschwunden ist...
Hatte ich im Forum schon erwähnt: Der Entwickler hatte seinen Sitz in der Ostukraine. 2014 gab es da einen Bruch und der Compiler wurde so nicht mehr weiterentwickelt.
Ich meine den Entwickler in Russland gesehen (im Web) zu haben. Das sollte viel erklären.
Achtung: Bin kein Informatiker sondern komme vom Bau.
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:35 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