Tutorial
RANDOM-Tutorial
von ytwinky | Seite 1 von 3 |
Nachdem nun schon mehrfach Benutzer an der Verwendung von RANDOM gescheitert sind, scheint es angebracht, etwas Licht in das Dunkel um RANDOM zu bringen.
(Der Link zu Pete's QBSite war eine gute Hilfe hierfür)^^
Dabei hat RANDOM erstmal nichts mit RND() oder RANDOMIZE zu tun, doch dazu später mehr..
RANDOM gehört genauso wie INPUT und OUTPUT zur Datei-Ver-/Bearbeitung. Es wird also zur Bearbeitung von Dateien verwendet.
Nun haben Dateien oftmals aber auch einen Inhalt und diesen gilt es erstmal festzulegen:
Wir haben 4 Personen:
- 1 Ben Cartwright, 199, Ponderosa
- 2 Joe Dalton, 41, Wilder Westen
- 3 Lois Lane, 22, Metropolis
- 4 Marge Simpson, 34, Springfield
Diese Daten können wir leicht mit FreeBASIC speichern und darauf zugreifen. Doch stimmt das?
Leicht stimmt auf alle Fälle, aber mit dem Zugriff ist das so eine Sache. Wir können immer nur ALLE Daten lesen oder ALLE Daten speichern, das kann aber dauern(z.B. bei einer Song-Sammlung mit 70000 Titeln)..
Nun Gut, soviel haben wir jetzt hier nicht, aber das Beispiel wirft eine andere Frage auf: Was ist denn, wenn im Laufe der Bearbeitung die Datei so groß wird, dass sie nicht mehr in den Arbeitsspeicher paßt?
Rechnen wir mal durch: 70000 Songs, 1000 Zeichen an Informationen/Song macht ~77MB Daten. Das Speichern dauert auf einem Celeron(2GHz, 1GB-RAM) ~20sec, das Lesen dauert mehr als doppelt solange..
..Naja, vielleicht ist das Beispiel auch an den Haaren herbeigezogen..^^
(70000 Songs bedeuten immerhin 145 Tage Musik-NonStop) ;-))
Also bleiben wir beim einfachen Beispiel:
Dim As Integer DatenFile=FreeFile
Open "Personen.Dat" For OUTPUT As #DatenFile
Print #DatenFile, "Ben Cartwright, 199, Ponderosa"
Print #DatenFile, "Joe Dalton, 41, Wilder Westen"
Print #DatenFile, "Lois Lane, 22, Metropolis"
Print #DatenFile, "Marge Simpson, 34, Springfield"
Close #DatenFile
Diese Daten lassen sich auch wieder einlesen:
Dim As Integer DatenFile=FreeFile
DIM AS STRING DatenZeile
Open "Personen.Dat" For INPUT As #DatenFile
While Not EOF(DatenFile) ' solange es noch Daten gibt..
Line Input #DatenFile, DatenZeile
Print DatenZeile
Wend 'einlesen und ausgeben, sonst fertich^^
Close #DatenFile ' Datei schließen(immer wieder wichtig!!)
Sleep
Das bringt uns nun aber nicht gerade meterweit nach vorn, denn:
-wir haben keinen Zugriff auf die einzelnen Zeilen
-überhaupt keinen Zugriff auf die Elemente eines Datensatzes
Ooops, was war das? Datensatz?
Zusätzliche Informationen und Funktionen | |||||||
---|---|---|---|---|---|---|---|
|