INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.




Unsere Partner:

DIAdem-Forum.de Partner

DIAdem-Forum.de Partner






Stellenangebote:
Programmierer/in Bereich SPS und Roboter-Steuerungen
Bühl

Betriebswirtin / Betriebswirt
Bonn

Big Data Scientist / Analyst (m/w) Messdatenmanagement
Ingolstadt

Projektmanager Visualisierung (m/w)
München, Fulda

Inbetriebnehmer (m/w) für Visualisierungssysteme
Bietigheim-Bissingen





.
 
Themabewertung:
  • 3 Bewertung(en) - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5

Hinweise und Tipps und Tricks bei der Script-Erstellung
13.11.2008, 13:10, (Dieser Beitrag wurde zuletzt bearbeitet: 19.12.2008, 10:46 von Carpe_DIAdem.)
#1
DIAdem-Version: alle
DIAdem-Sprachversion: DE/EN
DIAdem Erfahrung seit: 1995
Hinweise und Tipps und Tricks bei der Script-Erstellung

Hallo zusammen,

Scripte (Applikationen) sind nur dann gute Scripte, wenn ihre Lesbarkeit - und damit einhergehend - ihre Erweiterbarkeit und Wartbarkeit einfach und leicht gewährleistet ist.
Einmal erstellte Scripte müssen immer – das zeigt die Praxis – gewartet und erweitert werden. Die nachfolgenden Hinweise sollen das Erstellen, die Pflege und Wartung von Scripten erleichtern.

Option Explicit
Erzwingt die explizite Deklaration aller Variablen in einem Script. Dadurch wird beispielsweise verhindert, dass Namen bereits bestehender Variablen falscher Schreibweise verwendet werden.

Erst Hauptprogramm, dann Funktionsdefinitionen
Es hat sich als hilfreich und besser lesbar herausgestellt, das Hauptprogramm vor den Funktionen zu definieren.

So viele Kommentare wie möglich
Wartungsarbeiten und Erweiterungen werden in erheblichem Maße durch sinnvolle Kommentare und optische Aufteilungen erleichtert.

Einrücken
Zur besseren Lesbarkeit sollten man bei IF, FOR, SELECT CASE, DO LOOP und Funktionsdefinitionen den Quellcode einrücken.

Call verwenden
Mit Call kennzeicht man den Aufruf von Funktionen und Prozeduren. Durch die damit einhergehende Klammerung der Übergabeparameter verbessert man die Lesbarkeit von Scripten.

„Sprechende“ Variablenamen
Verwendet sinngebende Namen für Variablen und Funktionsdefinitionen. (L1, R1, … sind keine sprechenden Variablen.) Ergänzt die Variablennamen durch ein vorangestelltes Zeichen, das den Datentypen repräsentiert (auch wenn VBS nur den Typen Variant kennt) und verwendet die Variablen in einem Kontext exklusiv (z. B. nur in einer SUB-Prozedur). Beispiele: dMeanSpeed, iCurrPos

Lokale Variablen verwenden
Die Fehleranfälligkeit von Scripten kann man deutlich reduzieren, indem keine – oder möglichst wenige – globalen VBS-Variablen definiert werden. Dadurch vermeidet man, dass unbeabsichtigt Werte von Variablen geändert werden oder eine Variable mehrfach zu unterschiedlichen Zwecken benutzt wird.

Keine Code-Wiederholungen
Nutzt Funktionsdefinitionen, um sich wiederholenden Code zu vermeiden. Gleicher Code, der an unterschiedlichen Stellen eingesetzt wird, muss bei Erweiterungen unnötig oft angepasst und geändert werden.

Übergabeparameter anstelle von globalen Variablen
Wie oben beschrieben, sollte auf globale Variablen weitestgehend verzichten werden. Um Informationen zwischen Funktionen auszutauschen, übergebt den Funktionen Parameter.

Modularisieren von Scripten
Das Aufteilen von größeren Applikationen auf mehrere VBS-Dateien ist durchaus üblich und sinnvoll. Vielfach erleichtert diese Modularisierung den Aufwand bei Wartungsarbeiten und Erweiterungen. Verwendet ScriptInclude, um auf Funktionen in anderen VBS-Dateien zuzugreifen. Der Aufruf erfolgt über den Funktionsnamen. Kennzeichet solche Funktionsbibliotheken mit SubSequence, damit die Funktionen der Bibliothek nur aus anderen Scripten aufrufbar sind.

Syntax von ScriptInclde
Eine VBS-Datei mit Sub- und Function-Prozeduren wird im Hauptscript mit dem Befehl ScriptInclude bekannt gemacht. Danach sind alle dort definierten Prozeduren über ihren Namen nutzbar.

Hinweis: ScriptInclude ist in jedem Fall einem ScriptStart vorzuziehen. Mit jedem ScriptStart wird eine quasi neue Script-Engine aktiviert und es werden jedes Mal bestimmte Prüfungen und Plausibilitätstests durchgeführt. Das kostet Zeit. Einer der wenigen sinnvollen Einsätze für ScriptStart ist die DIAdem-Kommandozeile (/CScriptStart(…)).
Siehe angehängtes Beispiel: Scripte_einbinden.ZIP

Informationsaustausch zwischen VBScript und SUD per Objekt
Prinzipiell bestehen zwei Möglichkeiten, Informationen zwischen einem Script und einem SUD-Dialog auszutauschen: mit globalen Variablen oder als Objekt-Parameter beim Aufruf des Dialogs. Wir empfehlen die Parameter-Variante.
Zunächst definiert man ein Klassen-Objekt, das alle auszutauschenden Informationen beinhaltet und initialisiert das Objekt. Beim SUD-Aufruf wird das Objekt als Parameter übergeben. Im SUD-Dialog definiert man eine SUD-globale Objekt-Variable. In der Dialoginitialisierung kann man mit dem Befehl GetArgument auf die Daten zugreifen und – bevor der Dialog beendet wird – mit SetArgument die Daten aktualisieren. Die aktualisierten Informationen stehen dann im Script wieder zur Verfügung.
Siehe angehängtes Beispiel: SUD_Control.ZIP

Carpe DIAdem
___________________________________________________________
DIAdem 11.0 und 10.2

.zip   Scripte_einbinden.zip (Größe: 1,05 KB / Downloads: 1.191)
___________________________________________________________
DIAdem 11.0

.zip   SUD_Control.zip (Größe: 4,15 KB / Downloads: 1.069)
___________________________________________________________
DIAdem 10.2

.zip   SUD_Control_10_2.zip (Größe: 4,16 KB / Downloads: 824)

Antworten
13.11.2008, 14:11,
#2
DIAdem-Version: 2011 und 2012 und auf alten CD's runter bis 3.0
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 1996
RE: Hinweise und Tipps und Tricks bei der Script-Erstellung

Vielen Dank Carpe_DIAdem für dieses super Tutorial!


(13.11.2008, 13:10)Carpe_DIAdem schrieb:  So viele Kommentare wie möglich
Wartungsarbeiten und Erweiterungen werden in erheblichem Maße durch sinnvolle Kommentare und optische Aufteilungen erleichtert.

Einrücken
Zur besseren Lesbarkeit sollten man bei IF, FOR, SELECT CASE, DO LOOP und Funktionsdefinitionen den Quellcode einrücken.

Zwei Tipps fallen mir dazu noch ein:
[Strg]+['] ermöglicht das Kommentieren von mehreren Zeilen gleichzeitig (hab ich erst heute hier im Forum gelernt Smile)
[Strg]+[Shift]+['] hebt den Kommentar auf
[TAB] rückt eine (oder mehrere!) Zeilen nach rechts und
[Shift]+[TAB] nach links ein.

Ich freue mich auf mehr solcher Beiträge

Gruß
Bruno

Antworten
21.11.2008, 13:31,
#3
DIAdem-Version: alle
DIAdem-Sprachversion: DE/EN
DIAdem Erfahrung seit: 1995
RE: Hinweise und Tipps und Tricks bei der Script-Erstellung

Hallo Bruno,

stimmt - das gehört auch noch in die Tripps nd Tricks. Ich werde es bei mir ergänzen.

Danke!

Carpe DIAdem

Antworten
18.12.2008, 14:50,
#4
DIAdem-Version: 2014SP1, 2015SP2 und DIAdem 2017 / dabei seit DIA/DAGO 2
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 1995
RE: Hinweise und Tipps und Tricks bei der Script-Erstellung

Als Programmierer der alten Schule werde ich mich jetzt doch mal intensiv mit Klassen und Objekten beschäftigen müssen. Die Überabe von Objekten als Parameter hat schon was.

@Carpe DIAdem
Wenn die Beispiele (SUD-Dialoge) jetzt auch noch unter DIAdem 10.2 laufen würden (zumindest noch ein paar Monate) hätte das einen gewissen Charm Wink

Gruß Voyager

Antworten
19.12.2008, 10:49,
#5
DIAdem-Version: alle
DIAdem-Sprachversion: DE/EN
DIAdem Erfahrung seit: 1995
RE: Hinweise und Tipps und Tricks bei der Script-Erstellung

Hallo Voyager,

auf vielfachen Wunsch habe ich das Dialog-Beispiel auch für DIAdem 10.2 angehängt (siehe oben).

Carpe DIAdem

Antworten
21.12.2008, 18:08,
#6
DIAdem-Version: 2014SP1, 2015SP2 und DIAdem 2017 / dabei seit DIA/DAGO 2
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 1995
RE: Hinweise und Tipps und Tricks bei der Script-Erstellung

@carpe
Vielfachen Dank!!!

@Alle
Schöne erholsame Weihnachten und einen guten Rutsch in ein garantiert sehr interessantes DIAdem-Jahr 2009

wünscht Voyager

Antworten
19.01.2009, 10:38,
#7
DIAdem-Version: 2014SP1, 2015SP2 und DIAdem 2017 / dabei seit DIA/DAGO 2
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 1995
HEX-Werte angeben

Die Syntax zur direkten HEX-Wert-Eingabe stammt in DIAdem noch aus der guten alten Pascal-Zeit. So ist es in den meisten Eingabedialogen und Tabellen möglich, Hexadezimaleingaben mit einem vorangestellten "$" zu machen. Auch in der AUT-Syntax gilt dies bei Wertzuweisungen (z.B. L1 := $10).
In VBS ist ungewohnterweise "&H" voranzustellen (z.B. L1 = &H10).

Gruß,
Voyager (der auch ein Weilchen gesucht hat)

Antworten
06.03.2009, 16:09,
#8
DIAdem-Version: 2014SP1, 2015SP2 und DIAdem 2017 / dabei seit DIA/DAGO 2
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 1995
Hilfsvariablen vom Typ Variant

An dieser Stelle möchte ich die Freunde der guten alten Hilfsvariablen (z.B. L1, R2, T6, ...) darauf hinweisen, dass es mit O1 ... O10 auch Hilfsvariablen vom Typ Variant gibt.
Mit diesen Dingern lassen sich dann auch Objekte, Klassen, ... vorzugsweise für Tests einfach global verwenden.
Diese Variablen sind momentan weder im Taschenrecher, noch im Hilfsvariablendialog zu finden. Auch in der Hilfe sind sie nur direkt mit O1 bis O10 zu finden.

Gruß Voyager

Antworten
11.03.2009, 10:53,
#9
DIAdem-Version: alle
DIAdem-Sprachversion: DE/EN
DIAdem Erfahrung seit: 1995
RE: Hinweise und Tipps und Tricks bei der Script-Erstellung

Hallo Voyager,

zu Testzwecken kann man sie sicherlich einsetzen, aber aus oben genannten Gründen („Sprechende“ Variablenamen) kann man sie nur bedingt empfehlen.

Carpe DIAdem

Antworten
26.04.2010, 15:42, (Dieser Beitrag wurde zuletzt bearbeitet: 26.04.2010, 17:33 von chaosyeti.)
#10
DIAdem-Version: 2017 Beta2 / seit 4.0 dabei
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 1996
RE: Hinweise und Tipps und Tricks bei der Script-Erstellung

Moin!

(13.11.2008, 14:11)Bruno schrieb:  Vielen Dank Carpe_DIAdem für dieses super Tutorial!

Zwei Tipps fallen mir dazu noch ein:
[Strg]+['] ermöglicht das Kommentieren von mehreren Zeilen gleichzeitig (hab ich erst heute hier im Forum gelernt Smile)
[Strg]+[Shift]+['] hebt den Kommentar auf
[TAB] rückt eine (oder mehrere!) Zeilen nach rechts und
[Shift]+[TAB] nach links ein.

Ich freue mich auf mehr solcher Beiträge

Gruß
Bruno
Daß einen Short Cut mit den Hochkommata ' gibt, war mir auch neu.

Ich weiß, daß es auch eine Tastenkombination gibt, alle vorhandenen Haltepunkte ([F9] für zeilenweise an/aus) in einem Script wieder zu entfernen. Ich hab sie nur vergessen... Kennt sie jemand?

Ansonsten schließe ich mich Bruno mit dem Lob an. Smile
Wär noch cooler, Carpe DIAdem, wenn Du die zusätzlichen Tipps (z.B. eben diese Short Cut-Kombinationen) oben mit in Deinen ersten Beitrag aufnehmen könntest! Big Grin

Antworten


Gehe zu: