Deutsch
SDK-Helfer/ Tools

JRPC: XPSE und XProfan X3 // FOR...ENDFOR // QUADINTS

 

Jens-Arne
Reumschüssel

JRPC: XPSE mit XProfan X3 nutzen: FOR, ENDFOR, QUADINTS

Herunterladen

Hallo zusammen,

es gibt bestimmt noch einige von Euch, die (wie ich) XPSE  [...]  benutzen, obwohl dieses Tool ziemlich in die Jahre gekommen ist und zur Zeit nicht weiterentwickelt wird. Z.B. wegen der nProcs ist es aber immer noch aktuell und mehr oder weniger unentbehrlich.

Viele Neuerungen in XProfan, die XPSE nicht unterstützt, kann man ja zum Glück mit {PUSHKEYWORD ...} verfügbar machen. Aber spätestens mit der neuen FOR...ENDFOR-Syntax von XProfan X3 geht das nicht mehr so ohne weiteres. Da XPSE mit einer eigenen FOR...END-Syntax ausgestattet ist, hilft es nichts, FOR als keyword zu pushen. Es ist aber absolut wünschenswert, die neue FOR-Möglichkeit von XProfan zu nutzen, weil sie *viel* schneller ist.

Ich habe hier - mit einem weiteren Tool - Abhilfe geschaffen. Es heißt JRPC (Jens-arneReumschüsselPraeCompiler). Es arbeitet extrem schnell (selbst 15.000 Zeilen Code werden in deutlich unter einer Sekunde erledigt; man sieht das gelbe Fenster von JRPC nur kurz aufblitzen).

Die Einbindung ist ganz einfach.

Hier die Anleitung:

JRPC.exe muss in das XProfan-Verzeichnis, wo auch XPSE.exe liegt, kopiert werden. Eingebunden wird JRPC im Sourcecode wie folgt:
 {$PUSHKEYWORD xfor,endfor}
 {$PREBATCH <XProfan X3-Pfad>\JRPC.exe "<Programmname>.enh"}

1. FOR...ENDFOR
Jetzt kann die FOR...ENDFOR-Syntax von XProfan X3 ganz einfach dadurch verwendet werden, dass man statt "FOR" einfach "XFOR" schreibt. Der Rest bleibt so, wie es in XProfan vorgesehen ist. JRPC setzt das "XFOR" nach der Bearbeitung durch XPSE in "FOR" um.
Beispiel:
 {$PUSHKEYWORD xfor,endfor}
 {$PREBATCH <XProfan X3-Pfad>\JRPC.exe "<Programmname>.enh"}

PROC TestProc

    declare i%
    xfor i%,10,20,2
    print i%
    endfor'i%

ENDPROC'TestProc


2. Hinweis für QUADINTS
XPSE kommt von Hause aus auch mit QUADINTS nicht zurecht. Wenn man aber die entsprechenden Variablen zusätzlich "pusht", funktioniert alles. Die bisher hier dargestellte etwas kompliziertere Umsetzung über JRPC ist nicht nötig.
Hier ein Beispiel:
 {$PUSHKEYWORD freetocaller,totalamount,totalfree}
DEF GetDiskFreeSpaceEx(4) !"kernel32.dll","GetDiskFreeSpaceExA"

PROC GetFreeDiskSpace'Parameter: Laufwerk (kann auf irgendeinen Pfad zeigen)

    parameters drive$'kann auf irgendeinen Pfad des gewünschten Laufwerkes zeigen
    declare d#,erg%
    declare quad freetocaller,totalamount,totalfree
    dim d#,255
    string d#,0=drive$
    erg%=@GetDiskFreeSpaceEx(d#,@addr(freetocaller),@addr(totalamount),@addr(totalfree))
    dispose d#
    return freetocaller

ENDPROC'GetFreeDiskSpace


420 kB
Bezeichnung:JRPC.exe
Version:1.3
Kurzbeschreibung: setzt FOR...ENDFOR für XPSE um
Hochgeladen:08.02.2016
Ladeanzahl19
Herunterladen
1.449 kB
Bezeichnung:XProfEd - JRPC & Prf2cpp
Version:4.0a
Kurzbeschreibung: Hervorhebung von XFOR, XPSE- & Prf2cpp-Direktiven
Hochgeladen:08.02.2016
Ladeanzahl2
Herunterladen
 
XProfan X4 * Prf2Cpp * XPSE * JRPC * Win10 64bit * PC i7-7700K@4,2GHz, 16 GB Hauptspeicher
PM: jreumsc@web.de
08.02.2016  
 




Jörg
Sellmeyer
Ich hab dein Beispiel mal als Quelltext formatiert. Einfach unter dem Pfeil "Quelltext" anklicken, nachdem du den Code geschrieben und markiert hast.

Vielleicht erbarmt sich David ja mal deiner und macht mit XPSE weiter (wenn sein Handyprojekt nicht mehr ganz soviel Einsatz erfordert).
 
XProfan X3
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
08.02.2016  
 




Jens-Arne
Reumschüssel
Jörg Sellmeyer (08.02.2016)
Ich hab dein Beispiel mal als Quelltext formatiert. Einfach unter dem Pfeil "Quelltext" anklicken, nachdem du den Code geschrieben und markiert hast.


Hallo Jörg, vielen Dank!

Jörg Sellmeyer (08.02.2016)
Vielleicht erbarmt sich David ja mal deiner und macht mit XPSE weiter (wenn sein Handyprojekt nicht mehr ganz soviel Einsatz erfordert).


Ja, das wäre wirklich schön. Er hatte auch schonmal sowas angedeutet; ganz tot ist XPSE also wohl noch nicht.
 
XProfan X3
XProfan X4 * Prf2Cpp * XPSE * JRPC * Win10 64bit * PC i7-7700K@4,2GHz, 16 GB Hauptspeicher
PM: jreumsc@web.de
08.02.2016  
 



Fetzt ja, ein Präkompilierer für den Präkompilierer.

Mein "Plan" für XPSE:

Die jetzige Version für XProfan 11 wird die letzte dieser Ära sein, Updates möchte ich aber nicht komplett ausschließen. Man kann mit ihr und XProfan 11 (oder FreeProfan) native Anwendungen schreiben ohne XProfan zu verlassen. An diesem Umstand dürfte sich auch noch viele Jahre nichts ändern.

Ich erzeuge dann eine neue Open-Source-Variante von XPSE. Diese Version wird ab dann jedoch in PHP geschrieben, damit sie einfacher auch auf jedem Web-Server funktionieren kann oder eben lokal.

Dadurch, dass diese Version ab dann "Open- Source" ist, können wir alle den besten Präkompilierer und Kompilierer bauen mit "zwei und fünfzigstem" nProc- ASM- Optimier- "Pass".
 
08.02.2016  
 




Jens-Arne
Reumschüssel
Feiner Plan!

Hoffentlich geht das gut, wenn ab da dann viele Köche im Brei rühren...
 
XProfan X3
XProfan X4 * Prf2Cpp * XPSE * JRPC * Win10 64bit * PC i7-7700K@4,2GHz, 16 GB Hauptspeicher
PM: jreumsc@web.de
08.02.2016  
 



... hat das Thema mal nach SDK-Helfer/ Tools verschoben

und beim XPSE verlinkt:  [...] 
 
08.02.2016  
 




funkheld
Hallo, guten Tag.

Den Befehl "Prozess" bekomme ich nicht zum laufen .
Der muss irgendwie wie der "For" Befehl in dem Programm : jrpc.exe
eingebettet werden.

Ich bekomme das nicht hin.

Danke.
Gruss
 
06.04.2016  
 




Jens-Arne
Reumschüssel
funkheld (06.04.2016)
Den Befehl "Prozess" bekomme ich nicht zum laufen .
Der muss irgendwie wie der "For" Befehl in dem Programm : jrpc.exe
eingebettet werden.


Moin, das ist einfach:
 {$PUSHKEYWORD process}

reicht. JRPC brauchst Du dafür nicht. Letzteres ist nur notwendig, wo XProfan und XPSE inzwischen kollidierende Schlüsselwörter verwenden. Das ist zur Zeit nur bei FOR der Fall.

Gruß, Jens-Arne
 
XProfan X3
XProfan X4 * Prf2Cpp * XPSE * JRPC * Win10 64bit * PC i7-7700K@4,2GHz, 16 GB Hauptspeicher
PM: jreumsc@web.de
10.04.2016  
 




funkheld
Jup danke für die Hilfe.
Jetzt funktioniert es.

Gruss
 
10.04.2016  
 



RGH (21.04.2016)
@iF: Welches Byte des Headers genau muss auf welchen Wert gesetzt werden?


Sorry, ich schrieb ja sinngemäß, dass ich es leider nicht mehr weiß.

Matthias Arlt (21.04.2016)
Das fragliche Flag liegt bei Offset (long(runtime#,60) + 92).
Für die Console sollte dort $3 stehen, für Window $2.


Super!
 
21.04.2016  
 




Jörg
Sellmeyer
[OFFTOPIC]Hm - ist da was im falschen Thread gelandet?[/OFFTOPIC]
 
XProfan X3
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
21.04.2016  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.282 Betrachtungen

Unbenanntvor 0 min.
Support vor 9 Tagen
Erfurt vor 31 Tagen
p.specht11.04.2018
funkheld22.01.2018
Mehr...

Themeninformationen



AGB  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Impressum  |  Shop  |  Support  |  Schnittstellen  |  Suche  |  XProfan.De

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies wegen technischer Notwendigkeit und um die Sicherheit zu erhöhen. Wenn du auf unsere Webseite klickst oder hier navigierst, stimmst du der Erfassung von Informationen durch Cookies auf XProfan.Net zu. Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.

einverstandenDatenschutzerklärung
Ich möchte keinen Cookie