This is an old revision of the document!
Table of Contents
The Scripting Language
Limitations and features
The Nettalk-language script uses the same syntax as other Visual Basic dialects. However there are some limitations to note:
- You can not have multiple commands with a colon in a separate line.
- There is on the
Do
/Loop
construct for iterating around a piece of script (ie theFor
/Next
statements are not available)
- There are none, Static'-Dekleration for variables.
- There is only one universal variable type as vbScript. After the declaration of a variable using
Dim
it will be an empty string.
- There are no line numbers or line brands.
- Dimensional arrays are basically, they are not declared and are valid throughout the script part. Instead of an index can also be a key in a string form can be used.
Besonderheiten
Die Nettalk-Scriptsprache verwendet die selben Syntax wie andere Basic-Dialekte. Dabei sind allerdings einige Einschränkungen zu beachten:
- Es können nicht mehrere Befehle mit einem Doppelpunkt getrennt in einer Zeile verwendet werden.
- Es steht ausschließlich die Do/Loop-Schleife zu Verfügung.
- Es gibt keine 'Static'-Dekleration für Variablen.
- Es gibt nur einen universellen Variablen-Typ wie bei vbScript. (Nach der Deklaration mit Dim enthält die Variable einen leeren String)
- Es werden keine Zeilennummern oder Zeilenmarken unterstützt.
- Arrays sind grundsätzlich eindimensional, sie werden nicht deklariert und gelten grundsätzlich im ganzen Scriptteil. An Stelle eines Indexes kann auch ein Key in form eines Strings verwendet werden.
Beispiele
Prozeduren und Variablen
#NewScriptBegin Script1 'Variable Testvar1 im Script1 verfügbar machen Dim Testvar1 'Variable Testvar2 im allen Sctipten verfügbar machen Public Testvar2 Sub StartTest() Testvar1="Test-Text" Testvar2="Noch ein Test-Text" MsgBox "Test2 in Script1" 'Aufrufen von Test1 in Script1 Test1 'Aufrufen von Test1 in Script2 Script2.Test1 End Sub Sub Test1() MsgBox "Test1 in Script1 (" + Testvar1 + ")" End Sub #NewScriptBegin Script2 Sub Test1() MsgBox "Test1 in Script2 (" + Testvar2 + ")" End Sub
Funktionen und Argumente
#NewScriptBegin Script1 Sub StartTest() MsgBox "Test2 in Script1" 'Aufrufen von Test1 in Script1 Test1 "Hanz", "Egon" 'Aufrufen von Test1 in Script2 TempText = Script2.Test1("Test...") MsgBox TempText End Sub Sub Test1(Text1, Text2) MsgBox "Test1 in Script1 (" + Text1+ " und " + Text2 + ")" End Sub #NewScriptBegin Script2 Function Test1(Text) Test1 = "Text aus Test1 in Script2 (" + UCase(Text) + ")" End Sub
Aufrufen von Scriptteilen
Um Prozeduren und Funktionen per Hand in Nettalk aufzurufen gibt es den Befehl /call
, /calc
oder einfach ein ”?”.
Folgende drei Aufrufe bewirken alle das Selbe:
/call Test1 Hanz Egon /calc Test1("Hanz", "Egon") ?Test1("Hanz", "Egon")
Wie man sieht kann das ”?” genau wie /calc
verwendet werden. Besonderheiten von ”?” sind die Modifikationen ”?#” und ”?@”. Während das einfache ”?” den Rückgabewert einer Funktion nur dem Benutzer anzeigt, versendet ”?#” den Rückgabewert und ”?@” versendet den Rückgabewert mit dem Funktionsaufruf.
Beispiele:
?@Test1("Hanz", Str(32*1024)) ?5+8 ?#5+2^8 /calc 7*7+5
Da dem Befehl /call
die Argumente ohne Anführungszeichen angegeben werden, kann maximal ein String mit Leerzeichen übergeben werden in dem dieser durch ein ”:” markiert wird. Zudem zeigt /call
keine Rückgabewerte an.
Beispiel für einen String mit Leerzeichen:
/call Test3 Hanz Egon Marta :Dies ist ein Texttext mit Leerzeichen
Original German content : Die Scriptsprache