Einzelnen Beitrag anzeigen
Alt 08.04.2003, 22:13   #12
Sesa_Mina
Schwarzfußfrettchen
 
Registriert seit: 28.01.2001
Beiträge: 2.071


Standard

Code:
Type MyRecord
   Name as String * 20   (k.A. ob ich das mit der fixen Länge
   Alter as Byte         hier richtig hab...)
End Type

Dim User as MyRecord
Damit hast ne Variable mit einer ganz bestimmten Länge

Damit du nun mit GET immer einen record nach dem anderen einlesen kannst ohne umständlich die Position im file zu berechnen kannst du beim binörmode eine Record-Länge angeben.

Code:
Open ... for Binary as #1 Len=21
Ich sag jetzt mal oben angegebene Variable benötigt 21 Byte platz. 20 Byte für den Namen und 1 Byte für das Alter.

Mit
Code:
Get #1,0,User
liest du jetzt den ersten Satz ein.

Mit
Code:
Get #1,100,User
liest du den 101 Satz ein.

Hierbei ist jeder gelesene Record genau die 21 Byte groß. Du liest also in 21 Byte Schritten.

Wäre User jetzt 42 byte groß, würdest er genau 2 Sätzen platz bieten und es würden auch 2 gelesen werden.

Wenn du Len=1 angibst, setzt du die Record-Länge auf 1 Byte und kannst somit byteweise aus dem file lesen bzw. das ganze file auf einmal einlesen wenn du Get eine Variable übergibst die groß genug ist um den gesamten Inhalt (alle "Sätze") zu fassen.
____________________________________
Wann die kan Almdudler ham... \"Es gibt nur einen Weg zur Lunge, und der muss geteert werden, damit der Krebs nicht stolpert!\"
http://www.dream.at/gizmo/bunny.gif
Image is © 2001 Merle
Sterndalsäg.. ähh... jäger
Sesa_Mina ist offline   Mit Zitat antworten