Die Scriptsprache

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

Eigene Werkzeuge