dbLounge
Vorraussetzungen
Dieses Tutorial richtet sich an DarkBASIC Professional Programmierer, die schon die Grundlagen der Sprache beherrschen und ihre Codes übersichtlicher gestalten möchten.

Eine Möglichkeit dazu stellen Types (Variablenverbände) dar, für die es in der dbLounge natürlich auch schon eine einfache Befehlsbeschreibung gibt: Type.

Allerdings möchte ich diesen im weiteren Verlauf noch näher beleuchten, da er vor allem für Anfänger teilweise noch nach kryptischer Hexerei aussieht ;).
1. Der Variablenverbund
Einen Variablenverbund kann man sich als einen Variablentyp wie String, Integer oder Float vorstellen, der allerdings noch aus einer oder mehreren Untervariablen besteht, die voneinander unabhängig angesprochen werden können.
Als Beispiel verwenden wir einen Verbund um eine Adresse zu speichern.

Nun kommen wir zur ersten praktischen Anwendung.
Zunächst einmal muss man DBP mitteilen, dass man einen Variablenverbund erstellen möchte. Dies geschieht mit dem Schlüsselwort TYPE gefolgt vom Namen des neuen Variablenverbandes. Beendet wird der Type mit dem ENDTYPE Befehl.
Zwischen den beiden Anweisungen können nun beliebig viele Untervariablen vereinbart werden wie dies auch mit sonstigen Variablen gehandhabt wird.

Der Type
1
2
3
4
5
6
7
8
9
10
11
12
Type TAdresse REM Die erste "Untervariable" enthält später den Nachnamen Nachname As String REM In die zweite "Untervariable" schreiben wir den Vornamen Vorname As String REM Als nächstes folgt noch ein String für den Wohnort Wohnort As String REM Und zu guter letzt darf die Telefonnummer nicht fehlen ;) Telefon As Integer Endtype ...
2. Den Type verwenden
Als nächstes erstellen wir ein dreielementiges Array, in das drei unterschiedliche Adressen geschrieben werden. Dazu erstellt man zuerst ein gewöhnliches Array (Dim) und weist ihm mit dem As Befehl den neuen Typ zu.
Die Datenzuweisung erfolgt, indem man wie gewohnt den gewünschten Arrayindex anspricht gefolgt von einem Punkt (.) und dann den Namen der Untervariablen aus dem Type angibt, welchem dann ein Wert zugewiesen wird.

Deklaration und Zuweisung
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
... REM Erstellt das Array "Adresse" mit zwei Elementen Dim Adresse(2) As TAdresse REM Weist dem ersten Elemente des Arrays eine Adresse zu Adresse(0).Nachname = "Bonet" Adresse(0).Vorname = "gameron" Adresse(0).Wohnort = "DPC" Adresse(0).Telefon = 574347 REM Und das zweite Element folgt so gleich ;) Adresse(1).Nachname = "Bonet" Adresse(1).Vorname = "Blaster" Adresse(1).Wohnort = "DPC" Adresse(1).Telefon = 6665836 REM Der dritte Bonet :) Adresse(2).Nachname = "Bonet" Adresse(2).Vorname = "MrUnknown" Adresse(2).Wohnort = "DPC" Adresse(2).Telefon = 854126 ...
3. Type ausgeben
Als nächstes will man natürlich auch sehen, was man soeben in das Array geschrieben hat.
Dazu lässt man eine Variable durch alle Arrayelemente laufen, und gibt diese nun, zum Beispiel mit Hilfe des Print-Befehls, aus. Dabei werden die Untervariablen des Types wie bei der Zuweisung angesprochen; Index des Arrays gefolgt von einem Punkt (.) und dem Namen der Untervariable.
So kann man auch eine Zuweisung an eine einfache Variable vornehmen, was zu Demonstartionszwecken auch in den Code implementiert ist.
Des weiteren ist zu beachten, dass die Telefonnummer noch in einen String umgewandelt werden muss, da sie als Integer deklariert wurde. Dies lässt sich mit dem Str$-Befehl erreichen.

Adressen ausgeben
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
... REM Alle Elemente ausgeben For I = 0 To Array Count(Adresse(0)) REM Zuweisung an eine temporäre Variable ... MemNachname$ = Adresse(I).Nachname REM ... und diese ausgeben Print MemNachname$ Print Adresse(I).Vorname Print Adresse(I).Wohnort REM Telefonnummer vor Ausgabe in String umwandeln Print Str$(Adresse(I).Telefon) REM Eine Leerzeile Print "" Next I Wait Key
Der gesamte Code noch mal am Stück
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Type TAdresse REM Die erste "Untervariable" enthält später den Nachnamen Nachname As String REM In die zweite "Untervariable" schreiben wir den Vornamen Vorname As String REM Als nächstes folgt noch ein String für den Wohnort Wohnort As String REM Und zu guter letzt darf die Telefonnummer nicht fehlen ;) Telefon As Integer Endtype REM Erstellt das Array "Adresse" mit zwei Elementen Dim Adresse(2) As TAdresse REM Weist dem ersten Elemente des Arrays eine Adresse zu Adresse(0).Nachname = "Bonet" Adresse(0).Vorname = "gameron" Adresse(0).Wohnort = "DPC" Adresse(0).Telefon = 574347 REM Und das zweite Element folgt so gleich ;) Adresse(1).Nachname = "Bonet" Adresse(1).Vorname = "Blaster" Adresse(1).Wohnort = "DPC" Adresse(1).Telefon = 6665836 REM Der dritte Bonet :) Adresse(2).Nachname = "Bonet" Adresse(2).Vorname = "MrUnknown" Adresse(2).Wohnort = "DPC" Adresse(2).Telefon = 854126 REM Alle Elemente ausgeben For I = 0 To Array Count(Adresse(0)) REM Zuweisung an eine temporäre Variable ... MemNachname$ = Adresse(I).Nachname REM ... und diese ausgeben Print MemNachname$ Print Adresse(I).Vorname Print Adresse(I).Wohnort REM Telefonnummer vor Ausgabe in String umwandeln Print Str$(Adresse(I).Telefon) REM Eine Leerzeile Print "" Next I Wait Key