[Pascal] execute code


(Boro Casso) #1

Potrzebuje funkcji która wykonywała by kod w następujący sposób np

executecode("writeln('siemka');")

lub

executecode("ziom:=5;")

chodzi o to aby wykonywała kod podany w " ".


(Fiołek) #2

Pascal to język kompilowany do kodu natywnego. Nie da się go zmieniać po kompilacji. W C#, PHP i innych interpretowanych/uruchamianych na wirtualnej maszynie tak się da, ale nie w języku takim jak Pascal. Musisz napisać interpreter składni Pascala i całą "otoczkę" dopiero będziesz mógł wykonać kod w sposób który podałeś. Inaczej jest to niemożliwe.


(system) #3

Teoretycznie Fiołek ma racje, ale w praktyce ... darmowa biblioteka Jedi, komponenty: TJvInterpreterProgram oraz TJvInterpreterFm

bardzo łatwa "łączność" z wnętrzem programu.


(Boro Casso) #4

A jak to wykonać w c++ i/lub c#.


(Fiołek) #5

C# oferuje to "standardowo"(ma możliwość podmiany kodu w trakcie wykonywania z racji tego, że jest wykonywany na maszynie wirtualnej), jednak nie wiem jak to zrobić. Do C++ musisz sobie znaleźć bibliotekę która będzie interpretowała język o podobnej składni. AngelScript ma podobną, jednak nie wiem jak to z nim jest.


(system) #6

Wyżej wymieniona biblioteka Jedi może być podłączona i użyta pod Borland C++ Builder'em