Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Tutorial

RANDOM-Tutorial

von RedakteurytwinkySeite 2 von 3

Ein Satz von Daten, der ein bestimmtes Element beschreibt, ist ein Datensatz(Record), so einfach ist das ;-)
Und allgemein formuliert gehören bei unserem Beispiel zu einem Datensatz die Elemente:
-Vorname
-Nachname
-Alter
-Wohnort
Daraus könnten wir jetzt einen UDT(userdefined data type, benutzerdefinierten Datentyp) machen, doch nicht so schnell..
Nachdem wir jetzt unsere Daten im Programm organisiert haben, müssen wir das auch für den Speicherort machen. Die serielle Form der Datenspeicherung, die wir bisher benutzt haben, ist nun aber nicht mehr so interessant.
Wir möchten ja auf jeden Record wahlfrei(RANDOM) zugreifen können. Diesen können wir dann schreiben oder lesen!
Wir könnten für jedes Element des Records ein Array anlegen, dann bräuchten wir 4(in diesem Fall) Arrays. Das ist aber in der Handhabung bei der Programmentwicklung ziemlich umständlich, deshalb sehen wir uns mal die UDTs an:

Type Adressen
  As String Vorname, Nachname
  As Integer Alter
  As String Wohnort
End Type

Das sieht schön übersichtlich aus, doch für die Bearbeitung mit RANDOM fehlt eine wichtige Voraussetzung:
Damit der wahlfreie Zugriff auf die Daten funktioniert, müssen diese in einem festen Schema abgespeichert sein.
Ein Schema haben wir dank des UDTs ja schon, aber ob das 'fest' ist?
Wenn das Programm den ersten Datensatz finden soll, ist das kein Problem:
Datei öffnen, bis zum Cr/Lf lesen(Vorname), bis zum nächsten Cr/Lf lesen(Name), usw..
..und wenn ich auf den 4. Datensatz zugreifen will, müssen ALLE vorherigen ebenso gelesen werden und das kann dauern(s.o. Beispiel mit 70000 Songs).
Wenn alle Datensätze eine bestimmte Länge haben, ist das alles viel einfacher..

Type Adressen
  Vorname As String*20  'damit auch mehrere Vornamen sein dürfen
  Nachname As String*30 'es kann ja auch Doppelnamen geben
  Alter As Integer      'auch ein Integer hat eine feste Länge: 4
  Wohnort As String*40  'damit auch Stadtteile benutzt werden können
End Type

So, jetzt hat der UDT eine feste Länge, nämlich 94 Byte
Wenn wir uns jetzt mal in der Referenz(möglichst die aktuelle vom FreeBASIC-Portal) die Open-Anweisung ansehen..
..(Zeit zum Nachsehen)..
..stellen wir fest, dass es dort den Parameter 'LEN=' gibt. Das ist nun genau die Stelle, an der wir unsere 94 eintragen könnten.
Doch leider stellen wir beim Ausprobieren fest, dass zwar der erste Eintrag richtig dargestellt wird, bei den weiteren kommt aber eher Datensalat..
Bevor wir jetzt einen Fehlerbericht für freebasic.net schreiben oder uns im Forum blamieren, denken wir erstmal nach..
..Pause für diejenigen, bei denen das noch mechanisch funktioniert..

 

Gehe zu Seite Gehe zu Seite  1  2  3  
Zusätzliche Informationen und Funktionen
  • Das Tutorial wurde am 21.01.2008 von Redakteurytwinky angelegt.
  • Die aktuellste Version wurde am 07.09.2017 von Mitgliedavrfreund gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen