Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

nettalk:scripting:scriptsprache [2006/02/01 08:49]
213.23.72.238
nettalk:scripting:scriptsprache [2006/02/02 17:42] (aktuell)
mirici
Zeile 1: Zeile 1:
 +====== Die Scriptsprache ======
  
 +
 +===== Besonderheiten =====
 +
 +Die Nettalk-Scriptsprache verwendet die selben Syntax wie andere [[wp>​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 ====
 +
 +<code vb>
 +#​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
 +</​code>​
 +
 +==== Funktionen und Argumente ====
 +
 +<code vb>
 +#​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
 +</​code>​
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +===== 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:
 +<​code>​
 +/call Test1 Hanz Egon
 +
 +/calc Test1("​Hanz",​ "​Egon"​)
 +
 +?​Test1("​Hanz",​ "​Egon"​)
 +</​code>​
 +
 +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:
 +<​code>​
 +?​@Test1("​Hanz",​ Str(32*1024))
 +?5+8
 +?#5+2^8
 +/calc 7*7+5
 +</​code>​
 +
 +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:​
 +<​code>​
 +/call Test3 Hanz Egon Marta :Dies ist ein Texttext mit Leerzeichen
 +</​code>​

Eigene Werkzeuge