Dienstag, 31. August 2010

August 2010 / VB.Net & VBScript

VB.Net

Am 16.08.2010 begann für mich die Schule des 2. Lehrjahres. Nun habe ich einige Neue Fächer, unter anderem das Modul 303, objektbasiertes Programmieren mit Komponenten. In diesem Modul befassen wir uns hauptsächlich mit VB.NET, einer Sprache welche ebenfalls, wie C#, auf dem .NET-Framework basiert. Diese Sprache ist also ähnlich wie C#, über welche ich bereits letzten Monat geschrieben habe.
Was mir jedoch sofort auffiel war, dass die Syntax unter VB.NET anders ist als unter C#.

Schreibt man unter VB.NET eine Variabel gross anstatt klein, wird das automatisch vom Visual Studio kleingeschrieben. Unter C# wird das als Fehler angezeigt und nicht korrigiert. Einerseits kann das Automatische Korrigieren nützlich sein, andererseits muss man sich dabei nicht mehr so gut konzentrieren, was Fehler hervorrufen kann.

Ein weiterer Unterschied ist die Variablen-Deklaration. Unter VB.NET kann man diese Ganz einfach Deklarieren und diesen Variablen kann man dann zuweisen, was man gerade will.
Unter C# hingegen Deklariert man die Variablen immer sofort als Int, String, Double usw.

Das sieht dann so aus:
double Variabelname;
string Variabelname;

und unter VB.NET so:
Dim Variabelname As double
Dim Variabelname As string

Ausserdem finde ich den Code von C# übersichtlicher da man dank der geschwungenen Klammern immer sofort sieht, was zusammen gehört. Und die ; zeigen immer klar an wo ein Befehl fertig ist. In VB.NET ist das nicht vorhanden, dafür müsste man theoretisch einen Befehl ohne Zeilenumbruch schreiben. Unter C# werde Zeilenumbrüche nicht beachtet, unter VB.NET hingegen schon. Hat man also einen langen Befehl, kann man diesen in VB.NET nur durch _ auf mehrere Zeilen verschieben. Das sieht dann ungefähr so aus:
Test = Textteil(1) & _
Textteil(2)
In C# könnte man das so schreiben:
Test = Textteil(1) &
Textteil(2);
Es ist offensichtlich dass sich die beiden Codes ähneln.
Daher ist es auch nicht sehr einfach die beiden Sprachen auseinander zu halten.
Nachdem ich mich in VB.NET eingearbeitet hatte, wollte ich wieder etwas in C# entwickeln. Das Problem dabei war, dass ich ein Mix aus VB.NET und C# machte und daher die Syntax nichtmehr stimmte.

VBScript

Unabhängig vom VB.NET-Modul in der Schule, begann ich in der Firma mit VBScript zu programmieren.

Im Gegensatz zu "richtigen" Programmiersprachen ist es sehr einfach aufgebaut und wird von oben nach unten durchgearbeitet. Meine Scripts mussten bestimmte Informationen aus Text-Dateien lesen oder ganze Text-Dateien schreiben.
VBScript hat eine gewisse Ähnlichkeit mit VB.NET. Die Variablen werden beispielsweise gleich deklariert und auch die Syntax ist die Selbe. Daher war es kein Problem mich schnell zu Recht zu finden.

Die Schwierigkeit dabei war jedoch, dass ich für Windows CE entwickeln musste, einem Betriebssystem welches auf unseren Panels läuft. Das hatte zur Folge, dass ich mit einer Abgespeckten VBScript-Version arbeiten musste und daher fast keine Hilfe im Internet fand.

Ein wichtiger Unterschied zum normalen VBScript war, dass man nicht die gleichen Objekte und Methoden brauchte, um dasselbe zu machen. Möchte ich z.B. eine Textdatei Zeilenweise auslesen muss ich das Objekt(f) im normalen VBScript so erstellen:
Set f = CreateObject("Scripting..FileSystemObject")
Anschliessend kann ich mit einer anderen Variabel(Text) ein File öffnen und es mit ReadLine Zeilenweise lesen.
Set Text = f.OpenTextFile(Pfad, fwModeOpen)
Zeile = Text.ReadLine
In der Version für Windwos CE muss man das so machen:
Set f = CreateObject("FileCtl.File")
f.open Pfad, fwModeOpen
Text = f.LineInputString
Wie man sieht sind es nicht die gleichen Objekte und Methoden die verwendet werden müssen.
Schlussendlich musste ich das genau gleiche mit dem normalen VBScript programmieren. Da diese Codes jedoch so unterschiedlich sind, konnte ich dafür nur einzelne Bruchstücke des WindowsCE-Codes verwenden.

Keine Kommentare:

Kommentar veröffentlichen