Prof. Franz Schweiggert Abteilung Angewandte
Informationsverarbeitung 25. Januar 2005
Christian Ehrhardt Blatt 11
Allgemeine Informatik 3 (WS 2004/2005)
Abgabetermin 1.2.2005
In einer Datenbank-Datei werden Daten (z.B. Adressen) gespeichert. Jeder
Datensatz in der Datei hat eine feste Länge und besteht aus
mehreren Feldern (Name, Vorname, Telephon, Anschrift, etc.).
Der Einfachheit halber sind alle Felder Strings. Ist ein solcher
String kürzer als das dafür vorgesehen Feld, dann wird er durch
ein Nullbyte beendet. Wenn der String genau so lang ist, wie das
dafür vorgesehene Feld, dann entfällt das Nullbyte. Der erste
Datensatz jeder Datenbank enthält keine echten Daten, sondern in
jedem Feld eine Feldbeschreibung.
Beispiel: Jeder Datensatz einer Datenbank wie oben beschrieben
enthält drei Felder, den Namen (maximal 20 Zeichen), den Vornamen (maximal
31 Zeichen) und die Telephonnummer (maximal 14 Zeichen). Jeder
Datensatz benötigt also genau 65 Bytes, der erste Datensatz beginnt
bei Position 0 in der Datei, der zweite bei Position 65, der dritte
bei Position 130 usw. Das ist unabhängig davon, wie lange die
einzelnen Strings in den Datenfeldern tatsächlich sind. So könnte also
der erste Datensatz, der die Feldbeschreibungen enthält, aussehen (``*'' steht für ein Nullbyte,
anstelle der Leerzeichen kann beliebiges stehen):
111111111122222222223333333333444444444455555555556666
Position 0123456789012345678901234567890123456789012345678901234567890123
Byte Name* Vorname* Telephonnummer
Eure Aufgabe ist es, mit solchen Datenbanken zu arbeiten. Der Name der
Datei, die Anzahl der Felder in einem Datensatz und die jeweilige Größe
sollen dabei auf der Kommandozeile angegeben werden. So könnte also das
Anlegen einer neuen Datenbank aussehen, die dem oben verwendeten Beispiel
entspricht:
$ create_database phone 20:31:14
Beschreibung 1. Feld (maximal 20 Zeichen): Name
Beschreibung 2. Feld (maximal 31 Zeichen): Vorname
Beschreibugn 3. Feld (maximal 14 Zeichen): Telephonnummer
OK. Datenbank mit dem Namen phone erzeugt.
Schreibt ein oder mehrere Programme, mit denen sich
- eine neue Datenbank anlegen läßt,
- ein neuer Datensatz zu einer existierenden Datenbank hinzugefügt
werden kann (Hinweis: O_APPEND) und
- der Inhalt einer vorhandenen Datenbank in lesbarer Form
ausgegeben wird.
Wann immer auf die Datenbankdateien zugegriffen wird, sind Funktionen
wie fopen, fdopen oder fscanf verboten. Statt dessen
muß open, read und write verwendet werden.
Christian Ehrhardt
2005-01-25