PBScript - Scriptsprache mit PureBasic-Syntax

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
Josef Sniatecki
Beiträge: 657
Registriert: 02.06.2008 21:29
Kontaktdaten:

Re: PBScript - Scriptsprache mit PureBasic-Syntax

Beitrag von Josef Sniatecki »

Das mit der Lizenz ist so ne Sache. Wenn ich mich nicht täusche, beinhaltet PB-Skript direkte Aufrufe von internen PB-Befehlen. Ist das so, dann würde ich mal schnell umsteigen. :mrgreen: Mit Umsteigen meine ich, dass man z.B. versuchen sollte andere Schnittstellen zu verwenden, wie z.B. WinAPI. Kann sowas nur empfehlen, weil man erstens viel Erfahrung sammelt und einfach das Projekt frei zur verfügung stellen kann.

Bei PalladiumX war das Gleiche Problem. Deshalb haben sich die Bibliotheken demnach auch nach WinAPI orientiert.

Ich selbst (Operno ist meins :D) habe ehrlich gesagt keine so große Sammlung an Bibliotheken, weil ich nun mal kein WinAPI-Guru bin <). Trotzdem habe ich wenigstens Drawing, MIDI und sonstige Features einbauen können, was für mich langt. Außerdem orientiere ich mich eher auf mathematische Problemlösungen.

...
Alle Features von PureBasic mit WinAPI zu programmieren: viel Spaß :mrgreen:... Include ist natürlich nicht schön für jeden, klar... kann ich verstehen (auch wenn ich OpenSource-Freund bin). Und eine UserLib ist auch nicht gerade das handlichste, wenn es um Updates und Mitentwicklung geht. Und Außerdem ist die Nutzung dann nur auf PBler eingeschränkt.

Es liegt in deiner Hand. Vielleicht kannst du ja ein paar WinAPI begabte aufspüren, um Stück für Stück die PB-Bibliothek zu rekonstruieren >:)

Gruß Josef
PB 4.61 | Windows Vista - 32Bit
Homepage

"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Benutzeravatar
CSHW89
Beiträge: 489
Registriert: 14.12.2008 12:22

Re: PBScript - Scriptsprache mit PureBasic-Syntax

Beitrag von CSHW89 »

also erstmal alle features von purebasic programmieren, meinte ich nicht die funktionen sondern eher die funktionsweise, datenstrukturen, ect...
denn, also nichts für ungut, aber so libarys wie drawing ect... brauch ich nicht wirklich in einer scriptsprache. sowas brauch ich also nicht selbst zu schreiben. und wenn man wirklich mal so funktionen in seinem script verwenden möchte, kann man sie ja selbst in pbscript integrieren.

so, jetzt ist halt die frage, in wie weit ich funktionen zur verfügung stellen darf. zurzeit hab ich ja nur die str und val funktionen drin. ich denk mal das ist doch wohl kein problem. diese funktionen hat doch wohl jedes programm und jede programmiersprache. die frage ist jetzt, ob ich auch ein paar weitere befehle, z.b. von der string-libary "wrappen" darf? sind ja auch basis-funktionen, die auch fast jede programmiersprache verwendet.

lg kevin
Bild Bild Bild
http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
c4s
Beiträge: 1235
Registriert: 19.09.2007 22:18

Re: PBScript - Scriptsprache mit PureBasic-Syntax

Beitrag von c4s »

CSHW89 hat geschrieben:die frage ist jetzt, ob ich auch ein paar weitere befehle, z.b. von der string-libary "wrappen" darf? sind ja auch basis-funktionen, die auch fast jede programmiersprache verwendet.
Naja das Problem für dich ist ja, dass die Lizenz von PureBasic jegliches "wrappen" verbietet.
Also prinzipiell ist es nicht erlaubt.

Wenn ich aber folgendes durchlese:
Die PureBasic Lizenz verbietet ausdrücklich die Erstellung von DLL's, deren Hauptfunktion es ist, als ein 'Wrapper' für PureBasic-Funktionen zu dienen.
Kommt mir jedoch in den Sinn, dass die "Hauptfunktion" deines Programmes eben nicht das "wrappen" ist und deswegen einzelne Funktionen beispielsweise der String-Library von dir genutzt werden dürften.

Kontaktiere bei Unklarheiten einfach mal Freak oder Fred, denn die wissen es sicherlich am Besten.
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
Benutzeravatar
CSHW89
Beiträge: 489
Registriert: 14.12.2008 12:22

Re: PBScript - Scriptsprache mit PureBasic-Syntax

Beitrag von CSHW89 »

So, damit keiner denkt, dass dieses Projekt tot ist, hier ne neue Version.
Hat diesmal etwas länger gedauert. Naja als Student im ersten Semester hat man etwas andere Prioritäten. Ich konnt aber nicht widerstehen, also hier nun die neuen Features.

Version Alpha 0.24
ImScript:
- Die größte Neuerheit: Arrays!! Ein- und Mehrdimensional / auch als Argument in Proceduren / komplett kompatibel zu PureBasic
- Optionale Parameter bei Proceduren
- Möglichkeit einer Startwerzuweisung bei Global/Protected/Define
- Fast alle Funktionen der Math und String-Lib sind nun in PBScript integriert und können im Script benutzt werden, dazu noch ein paar Konstanten (komplette Liste steht in der Hilfe)

- Ein paar neue Funktionen in PBScript, um festzustellen, ob Variablen, die im Script definiert wurden, Arrays sind: PBSGetVariableCollect(), PBSGetVariableDimens(), PBSGetProcedureParamCollect(), PBSGetProcedureParamDimens()
- PBSGetArraySize() das gleiche wie ArraySize() in PureBasic

Ich wollt auch nochmal sagen, es hat auch so lange gedauert, weil ich meine Arrays komplett kompatibel zu PureBasic machen wollte. Deshalb hab ich nicht einfach eine eigene Struktur erfunden, um Arrays zu erstellen (was wesendlich einfacher gewesen wäre), sondern die Arrays so erstellt, wie in PureBasic mit Dim, und das alles mit ASM, obwohl ich von ASM fast keine Ahnung hab. Naja habs geschafft, außer, ach ja, ReDim ist noch nicht integriert. Kommt aber noch.

Zu den Funktionen der Math und String-Lib: Wegen der Lizenz hab ich nachgefragt. Solange es so grundlegende Funktionen bleiben, ist das kein Problem. Und ich hatte ja schon gesagt, das ich nicht weiter gehen will. Also ist alles in Ordnung.

So, das wars erstmal von mir. Fragen, Anregungen, Bugmeldungen: immer her damit.
Dann sag ich mal, ciao und auf wiederschreiben
lg kevin
Bild Bild Bild
http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
Benutzeravatar
CSHW89
Beiträge: 489
Registriert: 14.12.2008 12:22

Re: PBScript - Scriptsprache mit PureBasic-Syntax

Beitrag von CSHW89 »

So ich hab gehört, dass PBScript nicht mit PB 4.50 funktioniert. Eigentlich wollte ich noch bis zum FinalRelease warten. Aber da, denk ich, schon viele mit der Beta arbeiten wollen, hier nun die neue Version für PB 4.50.

Version Alpha 0.25
- Arrays musste ich intern etwas umprogrammieren. Ich hoffe da funktioniert auch noch alles.
- Leider ist das Strukturfeld 'string' in PBSValue nun 'Integer', da in StruktureUnion keine Strings und Nummern mehr zusammen stehen dürfen.

Ansonsten hat sich erstmal nichts geändert.
Link steht im ersten Post. Hab auch zusätzlich noch die Version für 4.40 noch online.
mfg Kevin

PS: Ich gekomme zur Zeit nur die Version 0.24 gedownloadet. Ich hoffe das liegt nur daran, dass die Datei noch im Cache ist. Schaut mal bitte in der Hilfe nach, obs die neue Version ist.
edit: hat sich erledigt, funktioniert!
Bild Bild Bild
http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
famous
Beiträge: 31
Registriert: 07.01.2010 16:58

Re: PBScript - Scriptsprache mit PureBasic-Syntax

Beitrag von famous »

wenn ich proceduren die ich verlink als string definiere stürzt es ab :o

Procedure.s etwas()
EndProcedure
Benutzeravatar
CSHW89
Beiträge: 489
Registriert: 14.12.2008 12:22

Re: PBScript - Scriptsprache mit PureBasic-Syntax

Beitrag von CSHW89 »

Hm, bei mir nicht.
Wenn du eine Procedure von PureBasic in das Script verlinken willst, muss die Defnition im Script genau die gleiche sein, wie die in PureBasic. Vielleicht liegt es daran.
Falls nicht, gib mir mal den Code.
Bild Bild Bild
http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
famous
Beiträge: 31
Registriert: 07.01.2010 16:58

Re: PBScript - Scriptsprache mit PureBasic-Syntax

Beitrag von famous »

also hier wird sie registriert

Code: Alles auswählen

PBSSetProcedureAdress(0, "GetUserName",  @CommandGetUserName_())
und hier die funktion an sich

Code: Alles auswählen

Procedure.s CommandGetUserName_()
  ProcedureReturn GetUserName()
EndProcedure
im skript wurde sie so registriert

Code: Alles auswählen

Procedure.s GetUserName()
EndProcedure
wenn ich debugge erhalte ich ein IMA
Benutzeravatar
CSHW89
Beiträge: 489
Registriert: 14.12.2008 12:22

Re: PBScript - Scriptsprache mit PureBasic-Syntax

Beitrag von CSHW89 »

ok, scheint wirklich ein bug zu sein, wenn die procedure keine parameter besitzt. den fehler hatte ich schon mal in einer meiner ersten versionen. ging dann aber. hmm, mal sehen, werd ich mir mal heute ansehen.
hier mit parameter gehts:

Code: Alles auswählen

Define string.s
Define *bytecode
Define value.PBSValue

Procedure.s CommandGetUserName_(a.i)
  ProcedureReturn "Hallo"
EndProcedure

string = #LF$
string + "Procedure.s GetUserName(a.i)"+#LF$
string + "EndProcedure"+#LF$
string + ""+#LF$
string + "Global val.s = GetUserName(0)"+#LF$

*bytecode = PBSCompileScriptString(string)
If (*bytecode = #Null)
  MessageRequester("Compiler-Error", PBSGetErrorText())
  End
EndIf

If PBSOpenByteMemory(0, *bytecode)
  PBSSetProcedureAdress(0, "GetUserName", @CommandGetUserName_())
  
  PBSStartByteCode(0)
  Debug PBSGetVariableString(0, "val")
  
  PBSCloseByteScript(0)
EndIf
Bild Bild Bild
http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
famous
Beiträge: 31
Registriert: 07.01.2010 16:58

Re: PBScript - Scriptsprache mit PureBasic-Syntax

Beitrag von famous »

um es ohne parameter zu umgehen kann man nur den parameter als
option setzen also

Code: Alles auswählen

Procedure.s GetUserName(p1=0)
was ich allerdings nicht schlecht finden würde wenn man proceduren
nicht extra noch im skript deklarieren müsste

edit: um das für alle möglichen spiele gängig zu machen wäre vll nicht
schlecht wenn man zeichen und schlüsselwörter umstellen könnte. zb
statt ein string mit "Hallo" ein string mit 'Hallo' oder statt Procedure Function :)
Antworten