Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding > Coding Tutorials
You last visited: Today at 16:51

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Visual Basic 2008] Einstieg & Grundlagen

Discussion on [Visual Basic 2008] Einstieg & Grundlagen within the Coding Tutorials forum part of the General Coding category.

Reply
 
Old   #1
 
Cash²'s Avatar
 
elite*gold: 0
Join Date: Apr 2010
Posts: 1,305
Received Thanks: 936
[Visual Basic 2008] Einstieg & Grundlagen



[Vorwort]

In diesem Tutorial verleihe ich euch den Einstieg und die Grundlagen von Visual Basic 2008. Ich versuche alles möglichst anfängerfreundlich und bildlich darzustellen. Wir werden mit Windows Forms-Anwendungen arbeiten. Gelingt euch etwas nicht sofort, gibt nicht auf und probiert einfach weiter. Jeder hat mal auf diese Art angefangen.

Es stammt hauptsächlich aus dem "Galileo Computing / <openbook>". Da ich mithilfe dessen Visual Basic lernte und es sehr gut beschrieben fand, vereinfachte ich das ganze, suchte nur die wichtigsten Dinge für Einsteiger aus und schrieb das Tutorial.



[Einführung]

Der wichtigste Vorteil von Visual Basic ist die einfache Erlernbarkeit der Sprache. VB ist bewusst an die englische Sprache angelehnt und benutzt Wörter anstelle von Symbolen. Beispiele sind And statt &&, Or statt ||,, Mod statt %. Da Visual Basic von Anfang an zum Einsatz mit einer integrierten Entwicklungsumgebung konzipiert wurde, können Visual-Basic-Programme in der Regel mit geringem Zeitaufwand erstellt werden.
Visual Basic ist eine objektorientierte Programmiersprache, deren neuere Versionen auf dem Microsoft .NET-Framework basieren.

Wir benutzen die Visual Basic 2008 Express Edition.






[Inhaltsverzeichnis]

Standard - Grundlagen
1. Neues Projekt erstellen
2. Das Eigenschaftsfenster
3. Die Toolbox / Steuerelemente
4. Das Codefenster
5. Strukturhilfe durch Kommentare
6. Starten, Ausführen und Beenden des Programms (Debugging)
7. Projekt speichern & Ausführbares Programm
8. Projekt schließen, Projekt öffnen

GRUNDLAGEN
1. Variablen und Datentypen
2. Operatoren
3. Verzweigungen
4. Schleifen








[Standard - Grundlagen]



Neues Projekt erstellen



Der Name ist eigentlich egal, passt ihn an euer Projekt an. Ich nenne es jetzt einfach Formular001.



Eigenschaftsfenster

Das Eigenschaftsfenster gibt den Startzustand von beispielsweise Steuerelementen an. Diese können sich während der Laufzeit des programmes durch codes ändern.
Es befindet sich auf der rechten Seite, wenn ihr ein neues Projekt erstellt.

Das sind die ganzen Eigenschaften:




Wichtige Eigenschaften für den Anfang, mit einigen werden wir uns beschäftigen:

EigenschaftBeschreibung
(Name)innerer Name, zur besseren Struktur
BackcolorHintergrundfarbe
BackgroundImageHintergrundbild
BackgroundImageLayoutHintergrund anpassen
ControlBoxIcon & Option: Schließen, minimieren, maximieren entfernen
CursorDen Cursor anpassen, nur auf der Fläche des programmes
Enablederlauben/nicht erlauben, "On/Off"
FontSchrift, Größe, anpassen
ForeColorSchriftfarbe
FormBorderStyleFormfläche verändern
ShowIconIcon innerhalb des programmes einfügen
ShowInTaskbarSichtbar in der Taskleiste Ja/Nein
StartPositionPlatzierung beim Start
Textäußerer Name
TopMostüber allen anderen Flächen liegen Ja/Nein

Wie das DesktopIcon eingefügt wird erzähle ich euch später.

Wenn man auf ein Label, Button o.ä klickt und die Eigenschaften betrachtet, verändern sich diese mit einem geringem Unterschied, da man diese Steuerelemente anders anpassen kann.

Damit wir eine gewisse Struktur beibehalten, benennen wir unsere Form, Button, Label ... dazu benutzen wir die Eigenschaft (Name), diese ist für die Benutzer nicht sichtbar.

Für uns zum Gebrauch:

ObjektVorsilben
Buttoncmd
Bezeichnungsfeld/Labellbl
Textfeld/Text Boxtxt
Optionsschaltfläche/Option Buttonopt
Formular/Formfrm
Kontrollkästchen/Checkboxchk

Beispiel:

1. Ein Button (eigentlich: Command Button), der die Anzeige der Zeit auslösen soll, wird beispielsweise mit cmdZeit bezeichnet.
2. Ein Button, der das Programm schließen soll, wird mit cmdEnde bezeichnet.



Die Toolbox / Steuerelemente

Die Werkzeugsammlung (Toolbox) enthält die Steuerelemente für den Benutzer, mit denen er den Ablauf des Programms steuern kann. Sie werden vom Programm-Entwickler in das Formular eingefügt.



Für den Anfang sind folgende Steuerelemente wichtig:

Steuerelement
Button
CheckBox
ComboBox
GroupBox
Label
LinkLabel
MenüStrip
RadioButton
Textbox
Timer

Weiteres kommt in einem anderen Tutorial von mir, da es jetzt noch nicht passend ist.



Das Codefenster

Mit einem Doppelklick auf eine Schaltfläche, gelangt ihr zum Codefenster. Hier wird das Geschehen durch Programmcodes festgelegt.



Wenn wir einen Blick zum Cursor werfen, dann sehen wir oben in der Zeile stehen (Form1-Ereignisse)
Das bedeutet, darin steht was passieren soll. Ein Beispiel werdet ihr bei
Strukturhilfe durch Kommentare sehen.


Code über mehrere Zeilen

Das Zeichen _ (= Unterstrich) am Ende einer Zeile zeigt in Visual Basic an, dass die aktuelle Zeile in der nächsten fortgesetzt wird.



Strukturhilfe durch Kommentare

Bei längeren Programmen mit vielen Anweisungen gehört es zum guten Programmierstil, Kommentarzeilen zu schreiben. In diesen Zeilen werden einzelne Anweisungen oder auch längere Blöcke von Anweisungen erläutert, damit man selber oder auch ein anderer Programmierer sie später leichter versteht. Eine Kommentarzeile beginnt mit einem einfachen Hochkomma. Alle Zeichen bis zum Ende der Zeile werden als Kommentar angesehen und folglich nicht übersetzt oder ausgeführt. Kommentare gehören nicht zum eigentlichen Code d.h. bei der Ausführung wird dies nicht in Beachtung genommen.

Beispiel:

Code:
Public Class frm001

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub cmdEnde_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdEnde.Click
        [COLOR="Lime"]'Ich bin ein Kommentar und befinde mich im Button (cmdEnde) Ereignis
        'Anwendung schließen[/COLOR]        
[COLOR="Red"]Me.Close()[/COLOR]
       [COLOR="lime"] 'Me bezieht sich auf das aktuelle Fenster in dem ich mich befinde, in dem Fall Form1   [/COLOR]End Sub
End Class
Grün = Kommentar(e)
Rot = Ereignis



Starten, Ausführen und Beenden des Programms (Debugging)

Programm starten

Nach dem Einfügen der Steuerelemente und dem Erstellen der Ereignisprozeduren ist das Programm fertig und kann gestartet werden. Dazu wird der Start-Button in der Symbolleiste (dreieckiger Pfeil nach rechts) betätigt. Alternativ startet man das Programm über die Funktionstaste oder den Menüpunkt Debuggen • Starten. Das Formular erscheint, das Betätigen der Buttons führt zum programmierten Ergebnis.

Programm beenden

Zur regulären Beendigung eines Programms ist der Button mit der Aufschrift Ende vorgesehen. Möchte man ein Programm während des Verlaufs abbrechen, kann man auch den End-Button in der Symbolleiste (Quadrat) betätigen. Außerdem kann man, sofern vorhanden, den aus vielen Windows-Anwendungen bekannten Button X oben rechts betätigen; dieser erscheint nur, wenn die Eigenschaft ControlBox des Formulars auf True steht.

Siehe Eigenschaften.

Fehler

Mit dem Testen/Debugging findet man Fehler heraus, bevor das Programm vollständig ist.
Tritt während der Ausführung eines Programms ein Fehler auf, so wird dies angezeigt und das Codefenster zeigt die entsprechende Ereignisprozedur sowie die fehlerhafte Zeile an. Man beendet das Programm, korrigiert den Code und startet das Programm wieder.

Wann ihr das debugging einsetzt, bleibt euch überlassen.



Projekt speichern & Ausführbares Programm
.exe-Datei

Um euer Projekt zu speichern, geht ihr in der MenüLeiste rechts neben der Speicherdiskette auf "Alle speichern". Jetzt legt ihr den Pfad fest.

Ausführbares Programm/ .exe-Datei: Menüpunkt • "Erstellen" und gleich das erste "... erstellen". Diese findet ihr nun im Speicherverzeichnis, bin, Release und dort die "Anwendung.
Beispiel (bei mir):

C:\Users\Johann\Desktop\Formular001\Formular001\bi n\Release



Projekt schließen, Projekt öffnen

Projekt schließen

Man kann ein Projekt schließen über den Menüpunkt Datei • Projekt schließen. Falls man Veränderungen vorgenommen hat, wird man gefragt, ob man diese Änderungen speichern möchte.

Möchte man die Projektdaten sicherheitshalber zwischendurch speichern, so ist dies über den Menüpunkt Datei • Alle speichern möglich.

Projekt öffnen

Zum Öffnen eines vorhandenen Projekts wählt man den Menüpunkt Datei • Projekt öffnen. Im darauf folgenden Dialogfeld Projekt öffnen wählt man zunächst das gewünschte Projektverzeichnis aus und anschließend die gleichnamige Datei mit der Endung .sln.




[GRUNDLAGEN]




Variablen und Datentypen

Variablen dienen zur vorübergehenden Speicherung von Daten, die sich während der Laufzeit eines Programms ändern können. Eine Variable besitzt einen eindeutigen Namen, unter dem sie angesprochen wird.

Namen, Werte
Namensregeln

Für die Namen von Variablen gelten in Visual Basic die folgenden Regeln:

• Sie beginnen mit einem Buchstaben.

• Sie können nur aus Buchstaben, Zahlen und einigen wenigen Sonderzeichen (z. B. dem Unterstrich _ ) bestehen.

• Innerhalb eines Gültigkeitsbereichs darf es keine zwei Variablen mit dem gleichen Namen geben

Variablen erhalten ihre Werte durch Zuweisung per Gleichheitszeichen. Einer Variablen sollte vor ihrer ersten Benutzung ein Wert zugewiesen werden. Dadurch werden Programme eindeutiger, lesbarer und fehlerfreier



Deklarationen

Neben dem Namen besitzt jede Variable einen Datentyp, der die Art der Information bestimmt, die gespeichert werden kann. Der Entwickler wählt den Datentyp danach aus, ob er Text, Zahlen ohne Nachkommastellen, Zahlen mit Nachkommastellen oder z. B. Datumsangaben speichern möchte.

Auswahl des Datentyps

Außerdem muss er sich noch Gedanken über die Größe des Bereichs machen, den die Zahl oder der Text annehmen könnte. Er sollte versuchen, den Datentyp mit dem geringsten Speicherbedarf zu verwenden; dieser gewährleistet gleichzeitig auch eine schnellere Verarbeitung. Gleich zeige ich die Datentypen.
Variablen sollten in Visual Basic immer mit einem Datentyp deklariert werden. Dies beugt Fehlern und unnötig hohem Speicherbedarf vor.



Datentypen

Die folgende Liste enthält die wichtigsten von Visual Basic unterstützten Datentypen sowie deren Speicherbedarf und Wertebereich.

• Datentyp Boolean, Speicherbedarf plattformabhängig, Wertebereich True oder False (»Wahr« oder »Falsch«)

• Datentyp Byte, Speicherbedarf 1 Byte, Wertebereich von 0 bis 255

• Datentyp Char, Speicherbedarf 2 Bytes, Wertebereich von 0 bis 65536

• Datentyp Date, Speicherbedarf 8 Bytes, Wertebereich vom 1. Januar 1 bis zum 31. Dezember 9999


Double

• Datentyp Double, Speicherbedarf 8 Bytes, Gleitkommazahl mit doppelter Genauigkeit, Wertebereich von –1,79769313486231570E+308 bis 4,94065645841246544E-324 für negative Werte und von 4,94065645841246544E-324 bis 1,79769313486231570E+308 für positive Werte


Integer

• Datentyp Integer, Speicherbedarf 4 Bytes, Wertebereich von –2.147.483.648 bis 2.147.483.647

• Datentyp Long, Speicherbedarf 4 Bytes, lange Ganzzahl, Wertebereich von –9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807

• Datentyp Object, Speicherbedarf 4–8 Bytes, Wertebereich beliebig

• Datentyp Short, Speicherbedarf 2 Bytes, Wertebereich von –32,768 bis 32,767

• Datentyp Single, Speicherbedarf 4 Bytes, Gleitkommazahl mit einfacher Genauigkeit; Wertebereich: 3,4028235E+38 bis –1,401298E-45 für negative Werte und 1,401298E-45 bis 3,4028235E+38 für positive Werte


String

• Datentyp String, Speicherbedarf plattformabhängig, Zeichenkette mit variabler Länge

• benutzerdefinierte Struktur, Speicherbedarf abhängig von den Elementen, jedes Element hat seinen eigenen Datentyp und damit seinen eigenen Wertebereich


Beispiel:

Im folgenden Beispiel werden Variablen der wichtigsten Typen deklariert, mit Werten versehen und in einem Label angezeigt.

Code:
Public Class frm001

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub cmdAnzeige_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAnzeige.Click
        Dim Bo As Boolean
        Dim By As Byte
        Dim Ch As Char
        Dim Dt As Date
        Dim Db As Double
        Dim It As Integer
        Dim Lg As Long
        Dim Sh As Short
        Dim Sg As Single
        Dim St As String

        Bo = True
        By = 200
        Ch = "a"
        Dt = "15.12.2007"
        Db = 1 / 7
        It = 2000000000
        Lg = 3000000000
        Sh = 30000
        Sg = 1 / 7
        St = "Zeichenkette"

        lblAnzeige.Text = _
        "Boolean: " & Bo & vbCrLf & _
        "Byte: " & By & vbCrLf & _
        "Char: " & Ch & vbCrLf & _
        "Double: " & Db & vbCrLf & _
        "Date: " & Dt & vbCrLf & _
        "Integer: " & It & vbCrLf & _
        "Long: " & Lg & vbCrLf & _
        "Short: " & Sh & vbCrLf & _
        "Single: " & Sg & vbCrLf & _
        "String: " & St

    End Sub
End Class
Das Programm hat nach Betätigung des Buttons die folgende Ausgabe:




Merke:

Quote:
• Variablen werden mit Dim ... As ... deklariert.

Wertebereich

• Bei den Zahlen-Datentypen führt eine Über- oder Unterschreitung des Wertebereichs zu einer Fehlermeldung.

Genauigkeit

• Die Datentypen Single und Double für Zahlen mit Nachkommastellen unterscheiden sich in ihrer Genauigkeit.

• Werte für Zeichen, Zeichenketten und Datumsvariablen müssen in doppelten Anführungszeichen angegeben werden.
Mehrere Variablen des gleichen Typs können, durch Kommata getrennt, in einer Zeile deklariert werden (z. B. Dim x, y As Integer).



Operatoren

Zum Zusammensetzen von Ausdrücken werden in Visual Basic, wie in jeder anderen Programmiersprache auch, Operatoren verwendet.

Priorität

Es gibt verschiedene Kategorien von Operatoren. Vorrangregeln (Prioritäten) sind für die Reihenfolge der Abarbeitung zuständig, falls mehrere Operatoren innerhalb eines Ausdrucks verwendet werden. Diese Vorrangregeln sind weiter unten in diesem Abschnitt angegeben. Falls man sich bei der Verwendung dieser Regeln nicht sicher ist, so empfiehlt es sich, durch eigene Klammersetzung die Reihenfolge explizit festzulegen.


Arithmetische Operatoren

Rechen-Operatoren

Arithmetische Operatoren dienen zur Durchführung von Berechnungen. Die folgende Tabelle listet die arithmetischen Operatoren auf:

OperatorBeschreibung
+Addition
-Subtraktion oder Negation
*Multiplikation
/Division
\Ganzzahl-Division
^Potenzierung
ModModulo

Die Ganzzahl-Division wird in zwei Schritten durchgeführt. Im ersten Schritt werden Dividend und Divisor einzeln gerundet. Im zweiten Schritt werden die beiden verbliebenen Zahlen geteilt, anschließend werden die Ziffern nach dem Komma abgeschnitten.

Beispiele:

AusdruckErgebnis
19 / 4 4.75
19 \ 4 4
19 \ 4.6 3
19.5 \ 4.2 5


Modulo
Der Modulo-Operator Mod berechnet den Rest einer Division.

Beispiele:

AusdruckErgebnis
19 Mod 43
19.5 Mod 4.22.7


^ (hoch)
Zur Potenzierung einer Zahl dient der Operator ^ (hoch).

Beispiele:

AusdruckErgebnis
2 ^ 532
3 ^ 2 ^ 3729
2 ^ 5.4-42.2242531447326
(-2) ^ 5-32

Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig und werden von links nach rechts in der Reihenfolge ihres Auftretens ausgewertet. Dasselbe gilt für Additionen und Subtraktionen, die zusammen in einem Ausdruck auftreten:

Klammern

Mit Klammern kann diese Rangfolge außer Kraft gesetzt werden, damit bestimmte Teilausdrücke vor anderen Teilausdrücken ausgewertet werden. In Klammern gesetzte Operationen haben grundsätzlich Vorrang. Innerhalb der Klammern gilt jedoch wieder die normale Rangfolge der Operatoren.



Vergleichsoperatoren

Vergleich

Vergleichsoperatoren dienen dazu festzustellen, ob bestimmte Bedingungen zutreffen oder nicht. Das Ergebnis nutzt man unter anderem zur Ablaufsteuerung von Programmen.

Die folgende Tabelle führt die Vergleichsoperatoren auf:

OperatorBeschreibung
<kleiner als
<=kleiner als oder gleich
>größer als
=>größer als oder gleich
=gleich
<>ungleich

Beispiele:

AusdruckErgebnis
5 > 3True
3 = 3.2False
5 + 3 * 2 >= 12False


Like
Darüber hinaus gibt es noch den Operator Like, der zum Mustervergleich dient. Dabei kann man unter anderem die Platzhalter * (eines oder mehrere Zeichen) und ? (genau ein Zeichen) einsetzen.

Beispiele:

AusdruckErgebnis
"abxba" Like "a*a"True
"abxba" Like "a?a"False
"aba" Like "a?a"True
"asdlfigc" Like "a?d?f*c"True



Logische Operatoren

Logik

Logische Operatoren dienen dazu, mehrere Bedingungen zusammenzufassen. Das Ergebnis nutzt man ebenfalls unter anderem zur Ablaufsteuerung von Programmen.

Liste:

OperatorBeschreibungDas Ergebnis ist True, wenn...
NotNicht... der Ausdruck False ist
AndUnd...beide Ausdrücke True sind
OrInklusives Oder...mindestens ein Ausdruck True ist
XorExklusives Oder...genau ein Ausdruck True ist

Beispiele:

Es seien die Variablen A = 1, B = 3 und C = 5 gesetzt. Die folgenden Ausdrücke ergeben dann jeweils:

AusdruckErgebnis
Not (A < B)False
(B > A) And (C > B)True
(B < A) Or (C < B)False
(B < A) Xor (C > B)True

Eine Zusammenstellung der Funktionsweise der logischen Operatoren liefert auch die folgende Wahrheitstabelle:

Ausdruck1Ausdruck2NotAndOrXor
TrueTrueFalseTrueTrueFalse
TrueFalseFalseFalseTrueTrue
FalseTrueTrueFalseTrueTrue
FalseFalseTrueFalseFalseFalse



Verkettungsoperator

Umwandlung in String

Der Operator & dient zur Verkettung von Zeichenfolgen. Ist einer der Ausdrücke keine Zeichenfolge, sondern eine Zahl oder Datumsangabe, so wird er in einen String verwandelt. Das Gesamtergebnis ist dann wiederum eine Zeichenfolge.

Beispiel:

Code:
Public Class frm001

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub cmdAnzeige_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAnzeige.Click
        Dim a As String
        Dim s As Single
        Dim d As Date
        d = "5.11.2007"
        s = 4.6
        a = "t " & s & " " & d
        lblAnzeige.Text = a
    End Sub
End Class
Das Ergebnis:





Zuweisungsoperatoren

Zeichen =

Der einfachste Zuweisungsoperator, das Gleichheitszeichen, wurde bereits genutzt. Es gibt zur Verkürzung von Anweisungen noch einige weitere Zuweisungsoperatoren:


OperatorBeispielErgebnis
=x = 7x erhält den Wert 7
+=x += 5der Wert von x wird um 5 erhöht
-=x -= 5der Wert von x wird um 5 verringert
*=x *= 3der Wert von x wird auf das Dreifache erhöht
/=x /= 3der Wert von x wird auf ein Drittel verringert
\=x \= 3der Wert von x wird auf ein Drittel verringert, Nachkommastellen werden abgeschnitten
^=x ^= 3der Wert von x wird auf x hoch 3 erhöht
&=z &= "abc"die Zeichenkette z wird um den Text »abc« verlängert



Rangfolge der Operatoren

Priorität

Enthält ein Ausdruck mehrere Operationen, so werden die einzelnen Teilausdrücke in einer bestimmten Rangfolge ausgewertet und aufgelöst, die als Rangfolge bzw. Priorität der Operatoren bezeichnet wird. Es gilt die folgende Rangfolge:

OperatorBeschreibung
^Exponentialoperator
-negatives Vorzeichen
*, /Multiplikation, Division
\Ganzzahl-Division
ModModulo
+, -Addition, Subtraktion
&Verkettung
=, <>, <, >, <=, >=, LikeVergleichsoperatoren (das Zeichen = steht für den Vergleich, nicht für die Zuweisung
Notlogisches NICHT
Andlogisches UND
Orlogisches ODER

Die Operatoren, die in der Tabelle weiter oben stehen, haben die höchste Priorität.

Klammern

Wie schon bei den arithmetischen Operatoren erwähnt: Mit Klammern kann diese Rangfolge außer Kraft gesetzt werden, damit bestimmte Teilausdrücke vor anderen Teilausdrücken ausgewertet werden. In Klammern gesetzte Operationen haben grundsätzlich Vorrang. Innerhalb der Klammern gilt jedoch wieder die normale Rangfolge der Operatoren.




Verzweigungen

Der Programmcode wurde bisher rein sequentiell abgearbeitet, d. h. eine Anweisung nach der anderen. Kontrollstrukturen ermöglichen eine Steuerung dieser Reihenfolge. Die Kontrollstrukturen unterteilen sich in Verzweigungen und Schleifen. Verzweigungen gestatten dem Programm, in verschiedene alternative Anweisungsblöcke zu verzweigen.

Es gibt die beiden Verzweigungsstrukturen If...Then...Else und Select Case.... Diese Auswahlmöglichkeiten übergeben aufgrund von Bedingungen die Programmausführung an einen bestimmten Anweisungsblock. Bedingungen werden mithilfe der bereits vorgestellten Vergleichsoperatoren erstellt.

Seltener genutzt werden außerdem noch die Auswahlfunktionen IIf() und Choose().


Einzeiliges If…Then…Else

Das einzeilige If...Then...Else hat folgenden Aufbau:

Code:
If Bedingung Then Anweisungen1 [ Else Anweisungen2 ]
If…Then…Else

Die Bedingung wird ausgewertet, sie ist entweder wahr oder falsch (True oder False). Ist das Ergebnis der Auswertung True, so wird der Then-Teil mit den Anweisungen1 ausgeführt. Ist das Ergebnis der Auswertung False und gibt es einen Else-Teil, so wird der Else-Teil mit den Anweisungen2 ausgeführt.

Dabei kann es sich sowohl um eine einzelne Anweisung als auch um mehrere Anweisungen handeln, die dann durch einen Doppelpunkt (: ) voneinander getrennt sind. In jedem Fall muss der gesamte Block in einer Zeile untergebracht werden. If-Strukturen können auch ineinander verschachtelt werden.



If…Then…Else-Block

Mehrzeilig, Block

Bei einfachen Entscheidungen und einzelnen Anweisungen ist das einzeilige If geeignet. Sobald mehrere Anweisungen auszuführen sind, wird der Programmcode schnell unübersichtlich. Für diese Zwecke ist ein If...Then...Else -Block wesentlich besser geeignet. Der Block hat folgenden Aufbau:

Code:
If Bedingung1 Then 
   Anweisungen1 
[ ElseIf Bedingung2 
   Anweisungen2 ] ... 
[ Else 
   AnweisungenX ] 
End If
Das Programm verzweigt zu den Anweisungen hinter der ersten zutreffenden Bedingung. Falls keine Bedingung zutrifft, werden die Anweisungen hinter dem Else ausgeführt, sofern es diesen Else-Zweig gibt. Andernfalls wird keine Anweisung durchgeführt. Ein If...Then...Else-Block endet immer mit einem End If.



Select Case

Mehrfachauswahl


Die Anweisung Select Case ... kann als Alternative zum If...Then ...Else -Block gelten. Sie vereinfacht eine Mehrfachauswahl, wenn nur ein Wert untersucht werden muss, und ist wie folgt aufgebaut:

Code:
Select Case Testausdruck 
   [ Case Ausdrucksliste1 
      Anweisungen1 ] 
   [ Case Ausdrucksliste2 
      Anweisungen2 ] ... 
   [ Case Else 
      AnweisungenX ] 
End Select

To, Is

Die Anweisung Select Case ... verwendet nur einen Testausdruck, der am Beginn der Struktur ausgewertet wird. Sein Wert wird anschließend der Reihe nach mit den Werten der Ausdruckslisten verglichen. Eine Ausdrucksliste kann aus mehreren Ausdrücken oder einer Bereichsangabe mit dem Schlüsselwort To bestehen. Ein Ausdruck kann aus einem Wert oder einer Bedingung mit dem Schlüsselwort Is bestehen.


End Select

Bei der ersten Übereinstimmung wird der zugehörige Anweisungsblock ausgeführt und dann mit der nächsten Anweisung hinter dem End Select fortgefahren.


Case Else

Der optionale Anweisungsblock hinter dem Case Else wird ausgeführt, falls vorher keine Übereinstimmung gefunden wurde.

Im nachfolgenden Programm werden ebenfalls vier verschiedene Fälle geprüft. Trifft keiner dieser Fälle zu, wird der Case Else-Zweig ausgeführt:

Code:
Public Class frm001

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub cmdAnzeige_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAnzeige.Click
        Dim x As Integer
        x = 16
      Select x
            Case 1, 3, 5, 7, 9
                lblAnzeige.Text = "Ungerade, Einstellig"
            Case 2, 4, 6, 8
                lblAnzeige.Text = "Gerade, Einstellig"
            Case Is < 1, Is > 20
                lblAnzeige.Text = _
                   "Kleiner Eins oder größer 20"
            Case 11 To 15
                lblAnzeige.Text = "Größer gleich 11 " _
                   & "und kleiner gleich 15"
            Case Else
                lblAnzeige.Text = _
                   "Größer 15 und kleiner 21"
        End Select
    End Sub
End Class
In diesem Beispiel sind nur die Zahlen größer 15 und kleiner 21 in keiner Ausdrucksliste enthalten. Der entsprechende Text ist also im Case Else-Zweig zu finden.



Funktion IIf

Liefert Wert

Die Funktion IIf() ähnelt dem einzeiligen If...Then...Else, liefert allerdings im Unterschied zu diesem direkt einen Wert zurück. Ihre Syntax lautet:

Code:
IIf(Bedingung, True-Ausdruck, False-Ausdruck)
Sowohl True-Ausdruck als auch False-Ausdruck müssen angegeben werden. Im nachfolgenden Programm wird das Maximum der beiden Zahlen x und y ermittelt und ausgegeben:

Code:
Public Class frm001

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub cmdAnzeige_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAnzeige.Click
        Dim x As Integer
        Dim y As Integer
        x = 5
        y = 3
        lblAnzeige.Text = IIf(x > y, x, y)

    End Sub
End Class
Ergebnis: 5



Funktion Choose

Wert aus Liste

Die Funktion Choose() gibt den Wert aus einer Liste zurück, dessen Position dem Indexwert entspricht. Die Positionen in der Liste beginnen allerdings bei 1, nicht bei 0. Die Syntax lautet:

Code:
Choose(Index, Ausdruck1, [Ausdruck2] ...)
Im nachfolgenden Programm wird eine Währung aus einer Liste von Währungen ausgewählt und ausgegeben:

Code:
Public Class frm001

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub cmdAnzeige_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAnzeige.Click
        Dim x As Integer
        x = 2
        lblAnzeige.Text = Choose(x, "US Dollar", _
           "Pfund", "Euro")

    End Sub
End Class
Zur Erläuterung:

Der Wert x = 2 führt zur Ausgabe von »Pfund«.



Schleifen

Schleifen werden in Programmen häufig benötigt. Sie ermöglichen den mehrfachen Durchlauf von Anweisungen. Darin liegt eine besondere Stärke der Programmierung allgemein: die schnelle wiederholte Bearbeitung ähnlicher Vorgänge.

Es gibt die Schleifenstrukturen: Do...Loop, For...Next, For Each... In... und With.

Mithilfe der ersten beiden Strukturen steuert man die Wiederholungen eines Anweisungsblocks (die Anzahl der Schleifendurchläufe). Dabei wird der Wahrheitswert (True/False) eines Ausdrucks (der Schleifenbedingung) oder der Wert eines numerischen Ausdrucks (Wert des Schleifenzählers) benötigt.

Die Schleife For Each...In... wird meist bei Feldern oder Collections (Auflistungen) eingesetzt. Die Anweisung With dient zur Steuerung einer besonderen Schleife mit nur einem Durchlauf.


For ... Next

Falls die Anzahl der Schleifendurchläufe bekannt oder vor Beginn der Schleife berechenbar ist, sollte man die For... Next-Schleife verwenden. Ihr Aufbau sieht wie folgt aus:

Code:
For Zähler = Anfang To Ende [ Step = Schritt ] 
   [ Anweisungen ] 
   [ Exit For ] 
   [ Anweisungen ] 
Next [ Zähler ]

Step

Die Zahlen-Variable Zähler wird zunächst auf den Wert von Anfang gesetzt. Nach jedem Durchlauf wird sie um den Wert von Schritt verändert, also vergrößert oder verkleinert. Falls Step = Schritt nicht angegeben wurde, wird die Variable um 1 vergrößert. Der neue Wert von Zähler wird mit dem Wert von Ende verglichen.

• Falls die Schrittweite positiv ist und der Wert von Zähler nicht größer als der Wert von Ende ist, wird die Schleife wiederum durchlaufen.

• Falls die Schrittweite negativ ist und der Wert von Zähler nicht kleiner als der Wert von Ende ist, wird die Schleife ebenfalls wiederum durchlaufen.

• Falls die Schrittweite positiv ist und der Wert von Zähler größer als der Wert von Ende ist oder falls die Schrittweite negativ ist und der Wert von Zähler kleiner als der Wert von Ende ist, wird die Schleife beendet.


Exit For

Die Anweisung Exit For kann eingesetzt werden, um die Schleife aufgrund einer speziellen Bedingung sofort zu verlassen.

In dem folgenden Programm werden durch Aufruf von vier Buttons vier unterschiedliche Schleifen durchlaufen:

Schleife1

Code:
Public Class frm001

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub cmdSchleife1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSchleife1.Click
        Dim i As Integer
        lblAnzeige.Text = ""
        For i = 3 To 7
            lblAnzeige.Text &= i & vbCrLf
        Next

    End Sub
End Class
Zur Erläuterung:

• Als Zählervariable dient i.

• Die Schleife wird erstmalig mit i = 3 und letztmalig mit i = 7 durchlaufen.

• Es ist keine Schrittweite angegeben, also wird als Schrittweite 1 genommen.

• Statt Next hätte man zur größeren Deutlichkeit auch Next i schreiben können.


Schleife2

Code:
  Dim i As Integer
        lblAnzeige.Text = ""
        For i = 3 To 11 Step 2
            lblAnzeige.Text &= i & vbCrLf
        Next

Schleife3

Code:
 Dim i As Integer
        lblAnzeige.Text = ""
        For i = 7 To 3 Step -1
            lblAnzeige.Text &= i & vbCrLf
        Next

Schleife4

Code:
 Dim d As Double
        lblAnzeige.Text = ""
        For d = 3.5 To 7.5 Step 1.5
            lblAnzeige.Text &= d & vbCrLf
        Next

Ergebnis bei der Ausführung (Buttonklick):

Schleife1 (Button1, cmdSchleife1)


Schleife2 (Button2, cmdSchleife2)


Schleife3 (Button3, cmdSchleife3)


Schleife4 (Button4, cmdSchleife4)




Do ... Loop

Steuerung über Bedingung

Ist die Anzahl der Schleifendurchläufe nicht bekannt bzw. vor Beginn der Schleife nicht berechenbar, so sollte man die Do ... Loop-Schleife verwenden. Es gibt sie in fünf verschiedenen Varianten:


While

• Do While...Loop: Prüft die Bedingung zum Weiterlaufen der Schleife am Anfang der Schleife.

• Do...Loop While: Prüft die Bedingung zum Weiterlaufen der Schleife am Ende der Schleife.


Until

• Do Until...Loop: Prüft die Bedingung zum Abbruch der Schleife am Anfang der Schleife.

• Do...Loop Until: Prüft die Bedingung zum Abbruch der Schleife am Ende der Schleife.

• Do...Loop: Die Bedingung zum Weiterlaufen oder Abbruch der Schleife wird nicht geprüft, daher ist eine Verzweigung in der Schleife und ein Exit Do zur Beendigung der Schleife notwendig.

Der allgemeine Aufbau sieht wie folgt aus:

Code:
Do { While | Until } Bedingung 
   [ Anweisungen ] 
   [ Exit Do ] 
   [ Anweisungen ] 
Loop
oder

Code:
Do 
   [ Anweisungen ] 
   [ Exit Do ] 
   [ Anweisungen ] 
Loop { While | Until } Bedingung



Das wars dann meinerseits.
In meinem nächsten Tutorial werde ich Übungen für die einzelnen Teile schreiben und danach, im 3. TuT, gehe ich weiter auf die Grundlagen ein
[Erweiterte Grundlagen].

Viel Spaß & Erfolg beim Lernen!


Credits:
Cash²
"Galileo Computing"

Bildbearbeitung teilweise:
~~King~~
Cash² is offline  
Thanks
40 Users
Old 05/25/2010, 15:04   #2
 
~~King~~'s Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 304
Received Thanks: 248
Sehr umfangreich und hast dir viel mühe gegeben NICE^^ gibt ein thanks
~~King~~ is offline  
Thanks
2 Users
Old 05/25/2010, 15:04   #3
 
Shadowz75's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 443
Received Thanks: 597
Quote:
Schleifen

Schleifen werden in Programmen häufig benötigt. Sie ermöglichen den mehrfachen Durchlauf von Anweisungen. Darin liegt eine besondere Stärke der Programmierung allgemein: die schnelle wiederholte Bearbeitung ähnlicher Vorgänge.

Es gibt die Schleifenstrukturen: Do...Loop, For...Next, For Each... In... und With.

Mithilfe der ersten beiden Strukturen steuert man die Wiederholungen eines Anweisungsblocks (die Anzahl der Schleifendurchläufe). Dabei wird der Wahrheitswert eines Ausdrucks (der Schleifenbedingung) oder der Wert eines numerischen Ausdrucks (Wert des Schleifenzählers) benötigt.

Die Schleife For Each...In... wird meist bei Feldern oder Collections (Auflistungen) eingesetzt. Die Anweisung With dient zur Steuerung einer besonderen Schleife mit nur einem Durchlauf.


meine fresse könnt ihr überhaupt nix selbst machen? und dann noch copyright is klar
Shadowz75 is offline  
Thanks
1 User
Old 05/25/2010, 15:07   #4
 
Cash²'s Avatar
 
elite*gold: 0
Join Date: Apr 2010
Posts: 1,305
Received Thanks: 936
Quote:
Originally Posted by Shadowz75 View Post


meine fresse könnt ihr überhaupt nix selbst machen? und dann noch copyright is klar
Ich hab eben nicht alles selber geschrieben!
Wieso denn auch, wenn es schon gut genug beschrieben ist.
Cash² is offline  
Thanks
2 Users
Old 05/25/2010, 15:12   #5
 
Shadowz75's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 443
Received Thanks: 597
Quote:
Originally Posted by Cash² View Post
Ich hab eben nicht alles selber geschrieben!
Wieso denn auch, wenn es schon gut genug beschrieben ist.
Tja sowas nennt man klauen, besonders daher:
Quote:
©Copyright by Cash²
Don´t Copy this!
Nicht kopieren!
wie wärs mit Credits angeben?
Shadowz75 is offline  
Thanks
1 User
Old 05/25/2010, 15:16   #6
 
Cash²'s Avatar
 
elite*gold: 0
Join Date: Apr 2010
Posts: 1,305
Received Thanks: 936
Quote:
Originally Posted by Shadowz75 View Post
Tja sowas nennt man klauen, besonders daher:


wie wärs mit Credits angeben?
Glücklich?
Keks?

Schreib du das doch alles, Witzfigur.
Cash² is offline  
Thanks
2 Users
Old 05/25/2010, 15:18   #7
 
~~King~~'s Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 304
Received Thanks: 248
er hat sich viel mühe gegeben und ich weiß dass er 2-3 tage gebraucht hat da ich ihn in icq habe...
~~King~~ is offline  
Thanks
1 User
Old 05/25/2010, 15:29   #8
 
Shadowz75's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 443
Received Thanks: 597
Quote:
Originally Posted by ~~King~~ View Post
er hat sich viel mühe gegeben und ich weiß dass er 2-3 tage gebraucht hat da ich ihn in icq habe...
Trotzdem bleibt es 'Diebstahl' besonders da er mit dem Text
©Copyright by Cash²
Don´t Copy this!
Nicht kopieren!
verdeutlicht , dass er es angeblich selbst geschrieben hätte.Wenn er wenigstens einsichtig wäre...
Shadowz75 is offline  
Thanks
1 User
Old 05/25/2010, 15:44   #9
 
Cash²'s Avatar
 
elite*gold: 0
Join Date: Apr 2010
Posts: 1,305
Received Thanks: 936
Quote:
Originally Posted by Shadowz75 View Post
Trotzdem bleibt es 'Diebstahl' besonders da er mit dem Text
©Copyright by Cash²
Don´t Copy this!
Nicht kopieren!
verdeutlicht , dass er es angeblich selbst geschrieben hätte.Wenn er wenigstens einsichtig wäre...
Das war eigentlich anders gemeint, aber mir jetzt egal ich weis was ich mit diesem Tutorial erzielen wollte und das gelingt mir.

#Edit
Ich habs ein wenig überarbeitet, jetzt sollte es ok sein.
Wobei ich auf was anderes hinaus wollte, aber was solls...
Cash² is offline  
Thanks
2 Users
Old 05/25/2010, 15:49   #10
 
Shadowz75's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 443
Received Thanks: 597
Quote:
Originally Posted by Cash² View Post
Das war eigentlich anders gemeint, aber mir jetzt egal ich weis was ich mit diesem Tutorial erzielen wollte und das gelingt mir.
Das ist mir doch egal, dann geb halt eine Quelle an, z.B.

btw:wie schafft es ein Mathematiker 25 Posts pro Tag in so nem Forum zu schreiben?
Shadowz75 is offline  
Old 05/25/2010, 15:57   #11
 
Cash²'s Avatar
 
elite*gold: 0
Join Date: Apr 2010
Posts: 1,305
Received Thanks: 936
Quote:
Originally Posted by Shadowz75 View Post
Das ist mir doch egal, dann geb halt eine Quelle an, z.B.

btw:wie schafft es ein Mathematiker 25 Posts pro Tag in so nem Forum zu schreiben?
xD du hast voll das Problem.

*Wie schafft es einer, der seit länger als einem Jahr hier angemeldet ist, unter 300 Posts zu haben?*

Jetzt diskutier nicht in diesem Thread, sondern schreib mich per PN an.
Cash² is offline  
Thanks
3 Users
Old 05/25/2010, 16:34   #12
 
Dorhaxxx's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 126
Received Thanks: 218
ist aber echt so <.< srtg+v kann jeder. Es ist vllt. anschaulich, aber es ist nicht von dir. ich gebe shadowz Recht. Erwähne es in den Credits dass es nicht von dir ist und mach das copyright weg O__o
Dorhaxxx is offline  
Old 05/25/2010, 16:39   #13
 
Cash²'s Avatar
 
elite*gold: 0
Join Date: Apr 2010
Posts: 1,305
Received Thanks: 936
Quote:
Originally Posted by Dorhaxxx View Post
ist aber echt so <.< srtg+v kann jeder. Es ist vllt. anschaulich, aber es ist nicht von dir. ich gebe shadowz Recht. Erwähne es in den Credits dass es nicht von dir ist und mach das copyright weg O__o
xD hast du mal hingeschaut?

Dann machs doch mit C&P omg kein Plan oder was? schreib an deinen "Hello World" Programm/Tuts weiter du Held.

Cash² is offline  
Thanks
1 User
Old 05/25/2010, 16:57   #14
 
flaverdidi's Avatar
 
elite*gold: 0
Join Date: Nov 2007
Posts: 70
Received Thanks: 6
hat mir geholfen
freu mich auf dein nächstes tut

@dorhaxxx schau genauer hin du opfer der hat doch hingeschrieben
flaverdidi is offline  
Thanks
1 User
Old 05/25/2010, 18:04   #15
 
Dorhaxxx's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 126
Received Thanks: 218
Quote:
Originally Posted by flaverdidi View Post
hat mir geholfen
freu mich auf dein nächstes tut

@dorhaxxx schau genauer hin du opfer der hat doch hingeschrieben
#reported
und er hatte es erst nicht dort stehen
Dorhaxxx is offline  
Reply


Similar Threads Similar Threads
Visual Basic 2008
06/19/2010 - WarRock - 11 Replies
Suche Visual BAsic 2008 c++ express den downlaod habe nähmlich nur 2008 express und 2010 c++ bruache 2008 c++
Visual basic 2008 ?
06/12/2010 - Technical Support - 7 Replies
Hey leute habe kleines progrmm geschrieben mit vb2008 so nun mein problem . wie kann ich die gespeicherte datei (.net) glaub ich in eine exe umwandeln so das es andere auch benutzen können ?
Visual Basic 2008
06/03/2010 - WarRock - 8 Replies
Hi Da Hier Viele von Euch Mit Vb Was Coden Habe Ich Eine Frage. Ihr Kennt Ja Bei Webbrowsern Rechts Am Rand Die Scroll Leiste. Ich Würde Gerne In VB Ein Ein Panel Haben Wo Ich Drin RunterScrollen Kann. Könnt Ihr Mir Helfen?:confused:
how to use visual basic 2008?
09/28/2009 - CO2 Programming - 2 Replies
how to use visual basic 2008? help me please or give me some codes.



All times are GMT +1. The time now is 16:52.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.