von Holger.M » Do, 02.12.2004 13:02
Ein Nachtrag dazu.
Mit dieser kleinen Behelfsfunktion kann man Binär und Random Daten lesen.
Schreiben ist aber leider grundsätzlich nicht möglich da er wenn
kein "ACCESS" beim öffnen angegeben wird, die komplette Datei löscht (bzw. den Inhalt)
"ACCESS read write" killt die Daten ebenso. Lediglich "ACCESS read" läßt sie am Leben.
Da das bereits unmittelbar beim Öffnen geschieht, würde ich es als _ziemlich_ schlimmen Fehler einstufen. :-/
Beispiel Code:
SUB Main
open "meinedatei" for binary ACCESS read as #5
' Lese ab dem dritten Byte einen 20 Byte langen String
zz$=getBin$(5,3,20,0)
PRINT zz$
END SUB
' BinOderRandom
'0=Binär (laenge& = Stringlänge ,abPosition& =Byte Position )
'1=Random (laenge& = Satzlänge ,abPosition& =Satznummer )
FUNCTION getBin$(dateiHandle,abPosition&,laenge&,BinOderRandom)
dim kk as integer
zz$=""
IF BinOderRandom =1 THEN abPosition& = 1+((abPosition&-1) *laenge&)
FOR t& = 0 TO laenge&-1
get #dateiHandle,abPosition&+t&,kk
m%=FIX(kk/256)
m%= kk- (m%*256)
zz$=zz$+CHR$(m%)
NEXT t&
getBin$ =zz$
END FUNCTION
Ein Nachtrag dazu.
Mit dieser kleinen Behelfsfunktion kann man Binär und Random Daten lesen.
Schreiben ist aber leider grundsätzlich nicht möglich da er wenn
kein "ACCESS" beim öffnen angegeben wird, die komplette Datei löscht (bzw. den Inhalt)
"ACCESS read write" killt die Daten ebenso. Lediglich "ACCESS read" läßt sie am Leben.
Da das bereits unmittelbar beim Öffnen geschieht, würde ich es als _ziemlich_ schlimmen Fehler einstufen. :-/
Beispiel Code:
SUB Main
open "meinedatei" for binary ACCESS read as #5
' Lese ab dem dritten Byte einen 20 Byte langen String
zz$=getBin$(5,3,20,0)
PRINT zz$
END SUB
' BinOderRandom
'0=Binär (laenge& = Stringlänge ,abPosition& =Byte Position )
'1=Random (laenge& = Satzlänge ,abPosition& =Satznummer )
FUNCTION getBin$(dateiHandle,abPosition&,laenge&,BinOderRandom)
dim kk as integer
zz$=""
IF BinOderRandom =1 THEN abPosition& = 1+((abPosition&-1) *laenge&)
FOR t& = 0 TO laenge&-1
get #dateiHandle,abPosition&+t&,kk
m%=FIX(kk/256)
m%= kk- (m%*256)
zz$=zz$+CHR$(m%)
NEXT t&
getBin$ =zz$
END FUNCTION