String als Code?
- Little Progger
- Beiträge: 43
- Registriert: 21.04.2010 10:05
- Computerausstattung: 2,8 gHz Dual core
Geforce 9800GT Green Edition
500GB SATA - Wohnort: Daheim
- Kontaktdaten:
String als Code?
Tagchen Euch allen!
Meine Frage ist eigentlich recht simpel, aber ich hab dafür noch keine Lösung gefunden.
Und zwar: Kann man eine Variable, die ein String ist, anhand irgendeines Befehls oder so als Quellcode lesen lassen?
Wenn ja, wie?
Meine Frage ist eigentlich recht simpel, aber ich hab dafür noch keine Lösung gefunden.
Und zwar: Kann man eine Variable, die ein String ist, anhand irgendeines Befehls oder so als Quellcode lesen lassen?
Wenn ja, wie?
- NicTheQuick
- Ein Admin
- Beiträge: 8807
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: String als Code?
Und was soll dann mit dem Code passieren? Soll er ausgeführt werden? Das geht nicht nativ in PB. Dazu brauchst du einen Interpreter für PB-Code oder müsstest den Code in dem String erst einmal von PB kompilieren und das Ergebnis wieder ausführen lassen.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: String als Code?
@Little Progger
Wenn Du so etwas suchst, wie es z.B. der XProfan Interpreter kann, das wird in PureBasic nicht gehen, das geht
nur mit interpretierten Sprachen, PB benötigt einen Compiler um die native Exe zu erzeugen.
Wenn Du so etwas suchst, wie es z.B. der XProfan Interpreter kann, das wird in PureBasic nicht gehen, das geht
nur mit interpretierten Sprachen, PB benötigt einen Compiler um die native Exe zu erzeugen.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- Little Progger
- Beiträge: 43
- Registriert: 21.04.2010 10:05
- Computerausstattung: 2,8 gHz Dual core
Geforce 9800GT Green Edition
500GB SATA - Wohnort: Daheim
- Kontaktdaten:
Re: String als Code?
Ja, ich hoffte man könnte diesen String dann quasi einfach ausführen. Was ich damit vorhabe ist folgendes: Ich will, dass man irgendwo eine Funktion eingibt, zB. "x+25/x^2" oder so, und diese dann auch als Funktion im Programm gewertet wird, sodass ich zB. einen Graphen zeichnen lassen kann.
Aber dann muss ich mir wohl was anderes ausdenken...
Aber dann muss ich mir wohl was anderes ausdenken...
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: String als Code?
Also suchst Du eine Eval-Funktion. Jetzt hast Du schon mal den passenden Suchbegriff und hier noch
ein passender link: http://www.purebasic.fr/german/viewtopi ... =8&t=17186
ein passender link: http://www.purebasic.fr/german/viewtopi ... =8&t=17186
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: String als Code?
... oder, wenns um komplizierteren Code geht: http://www.purebasic.fr/german/viewtopi ... 11&t=21646
lg Kevin
lg Kevin



http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
- Little Progger
- Beiträge: 43
- Registriert: 21.04.2010 10:05
- Computerausstattung: 2,8 gHz Dual core
Geforce 9800GT Green Edition
500GB SATA - Wohnort: Daheim
- Kontaktdaten:
Re: String als Code?
okay, danke Leute! Werde mich die nächsten Tag da mal einarbeiten!
Re: String als Code?
Little Progger hat geschrieben:zB. "x+25/x^2"
Code: Alles auswählen
; http://forums.purebasic.com/german/viewtopic.php?f=8&t=24256
XIncludeFile "Evaluate.pbi" ; http://danilo.purearea.net/EvaluateExpression.zip
Define i
For i = 1 To 5
EvaluateVariables("x") = Str(i)
Debug Evaluate("x+25/x^2")
Next
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Re: String als Code?
Oder ganz dreist mit SQL:
Code: Alles auswählen
Enumeration
#Database
EndEnumeration
Procedure.f Rechne(String.s, X.f=0)
Protected Result.s
If DatabaseQuery(#Database, ReplaceString("SELECT ("+String+")", "x", StrF(X)))
If NextDatabaseRow(#Database)
Result = GetDatabaseString(#Database, 0)
EndIf
FinishDatabaseQuery(#Database)
EndIf
ProcedureReturn ValF(Result)
EndProcedure
UseSQLiteDatabase()
OpenDatabase(#Database, ":memory:", "", "", #PB_Database_SQLite)
Debug Rechne("1 + 2 * 3")
Debug Rechne("x+18/(x*x)", 3)
Debug Rechne("374*4+7*(83+99)-3*128")
CloseDatabase(#Database)
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: String als Code?
Moin!
Übrigens, ganz nebenbei erwähnt, LittleProgger: Wenn der Nutzer irgendwie Einfluß auf diese Zeichenkette nehmen kann, reißt Du u.U. ein Sicherheitsleck auf. Parsen mußt Du die Zeichenkette sowieso, da kannste dann auch ein paar Sicherheitsabfragen mit einbauen (wie Division durch Null, Dateioperationen). Ich weiß, ist sehr vage formuliert. Wir wissen aber auch nicht genau, was Du wie von wem einsetzen willst.
Gruß - WPö
Übrigens, ganz nebenbei erwähnt, LittleProgger: Wenn der Nutzer irgendwie Einfluß auf diese Zeichenkette nehmen kann, reißt Du u.U. ein Sicherheitsleck auf. Parsen mußt Du die Zeichenkette sowieso, da kannste dann auch ein paar Sicherheitsabfragen mit einbauen (wie Division durch Null, Dateioperationen). Ich weiß, ist sehr vage formuliert. Wir wissen aber auch nicht genau, was Du wie von wem einsetzen willst.
Gruß - WPö
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.