Datenfelder ◦ Zusammenfassung ◦ ?

Das Thema Datentypen unterscheidet einfache und zusammengesetzte Datentypen, die sich aus Werten einfacher Datentypen zusammensetzen.

Sind die folgenden Datentypen einfach oder zusammengesetzt?

- Ganzzahlen

- Zeichenketten

- Daten

- Wahrheitswerte.

Wir betrachten im folgenden die zusammengesetzten Datentypen Satz und Datenfeld.

### Satz

Ein Satz (engl. record) ist eine Struktur aus Werten verschiedener Datentypen. Der folgende Mitarbeitersatz setzt sich zum Beispiel aus verschiedenen nummerischen und symbolischen Elementen zusammen:

> 137221
> Fritz Meier
> Bahnhofstrasse 25
> 9000 St. Gallen
> 071/223 90 85
> 01.8.98

In VBA lautet die entsprechende Vereinbarung:

>     Type Mitarbeiter
>       Personalnummer As Integer
>       Name As String
>       Strasse As String
>       Ort As String
>       Telefon As String
>       Einstellungsdatum As Date
>     End Type

### Datenfeld

Sätze, insbesondere die Zeilen einer Datenbanktabelle, sind meist heterogen zusammengesetzt und befinden sich auf einem Externspeicher. Im folgenden beschäftigen wir uns nur mit einer homogen zusammengesetzten Datenstruktur des Internspeichers, dem Datenfeld (engl. array). Ein Datenfeld besteht aus beliebig vielen Werten des gleichen Datentyps. Das folgende Datenfeld enthält zum Beispiel die Punktetotale von fünf Fussballmannschaften:

22 | 16 | 28 | 6 | 32

Oft setzt man die Elemente einer Datenfeldkonstante zwischen eckige Klammern: [22, 16, 28, 6, 32].

Eine Datenfeldvariable besteht aus Speicherzellen des gleichen Datentyps, auf die unter dem gleichen Namen, aber verschiedenen Indizes - oben zum Beispiel die Zahlen 1 bis 5 - zugegriffen werden kann. Meist ändert sich die Grösse eines Datenfelds zur Laufzeit nicht. Wir vereinbaren deshalb eine untere und eine obere Grenze, welche den Laufbereich des Index begrenzen:

Name | Läufer(1) | Läufer(2) | Läufer(3) | Läufer(4) | Läufer(5)
Inhalt | “Anna” | “Bruno” | “Dora” | “Franz” | “Karin”

> Name der Datenfeldvariable: Läufer
> Grösse (Dimension): 5
> Untergrenze: 1
> Obergrenze: 5

Name und Index kennzeichnen jedes Element eindeutig. Läufer(2) bezeichnet zum Beispiel den zweiten Läufer. Jede Zelle gehört zum gleichen Datentyp. Der Array Läufer darf zum Beispiel nur Zeichenketten (engl. strings) aufnehmen. Ein Datenfeld hat folgende Vorteile:

- Es lässt sich sowohl ganz als auch elementweise verarbeiten

- Die Indizierung erlaubt die einfache Verarbeitung aller Elemente in einer Schleife.

Das Datenfeld Läufer wird wie folgt vereinbart:

>     Dim Läufer ( 1 To 5 ) As String

Allgemeiner lautet die Syntax einer Datenfeldvereinbarung:

> Dim <Datenfeldname> ( <Untergrenze> To <Obergrenze> ) As <Datentyp>

Statt Dim kann auch Private oder Public stehen (vgl. Fallbeispiel Gewinnverteilung). Der Zugriff auf ein Datenfeld ist lesend oder schreibend. Die folgende Anweisung liest zum Beispiel den Inhalt der fünften Zelle von Läufer und weist ihn der Variablen Tmp zu:

>     Dim Tmp As String
>     Tmp = Läufer(5)

Ebenso einfach ist die Fortschreibung eines Zellinhalts. Die folgende Anweisung ändert den Inhalt der fünften Zelle durch “Pauline”:

>     Läufer(5) = "Pauline"

Die Indizierung erlaubt die einfache Zusammenfassung mehrerer Lese- oder Schreiboperationen: Die folgende Zählschleife weist zum Beispiel allen Zellen den Inhalt “Fritz” zu:

>     Dim Läufer(1 To 5) As String
>     Dim i As Integer

>     For i = 1 To 5
>       Läufer(i) = “Fritz”
>     Next i

Die Zählschleife eignet sich besonders gut für das Durchlaufen eines Datenfelds. Verglichen mit der bereits eingeführten Schleife mit Ausführungsbedingung (While) erspart sie der Programmiererin die explizite Initialisierung, Prüfung und Erhöhung einer Indexvariable. Die Syntax der Zählschleife lässt sich wie folgt verallgemeinern:

> Dim Index As Integer
> For Index = <Untergrenze> To <Obergrenze>
> <Anweisungen>
> Next