Pokud
zapisujeme do binßrnφho souboru, pou₧φvßme na to p°φkaz Put. Mß
nßsledujφcφ definici:
Put #FileNumber,
ByteNumber, VariableName
Prom∞nnß
FileNumber je Φφslo volnΘho souboru, kterΘ pou₧φvßme p°i otevφrßnφ,
ByteNumber je pozice, na kterΘ chceme zaΦφt zapisovat data a VariableName
je jmΘno prom∞nnΘ (nebo °et∞zec, obsahujφcφ data), kterou chceme do
souboru zapsat. Jako p°φklad uve∩me zalo₧enφ novΘho souboru a nastavenφ
prvnφho bytu na hodnotu 2:
Dim nFileNum As
Integer
nFileNum = FreeFile
Open App.Path & "\example.bin" For Binary Access _
Write Lock Read Write As #nFileNum Read Write As #nFileNum
Put #nFileNum, 1, 2 'zapφÜe
hodnotu 2 na byt 1
Close #nFileNum
Nynφ
je t°eba nalΘzt postup, jak si tuto hodnotu p°eΦφst. Ve Visual Basicu
lze vyu₧φt p°φkaz Get, kter² mß ty samΘ Φßsti jako p°φkaz
Put:
Get #FileNumber,
ByteNumber, VariableName
Prom∞nnß
VariableName nynφ p°edstavuje prom∞nnou, do kterΘ se ulo₧φ naΦtenß
data. VÜimn∞te si, ₧e nespecifikuje, kolik byt∙ chceme naΦφst. P°i
pou₧φvßnφ binßrnφch soubor∙ se toto nastavuje deklaracφ dΘlky prom∞nnΘ
VariableName.
Pokud
jsme do souboru zapsali integerovou hodnotu 1, musφ b²t VariabLena datovΘho
typu Integer. A¥ zapφÜeme Φty°i Φφsla nebo jen jedno, prom∞nnß
VariableName bude v₧dy obsazena korektnφ hodnotou. V nßsledujφcφm p°φkladu
si p°eΦteme hodnotu ze souboru, kterou jsme ulo₧ili v p°edchozφm p°φkladu:
Dim nFileNum As
Integer, nNumber As Integer
nFileNum = FreeFile
Open App.Path & "\example.bin" For Binary Access _
Read Lock Read Write As #nFileNum
Get #nFileNum, 1, nNumber
Close #nFileNum
Msgbox nNumber
Pokud
spustφte prvnφ p°φklad a pak i p°φklad druh², obdr₧φte zprßvu s Φφslem
2, co₧ je hodnota zapsanß do binßrnφho souboru. Nynφ zkuste zam∞nit °ßdek
Put #nFileNum, 1, 2
na
Put
#nFileNum, 1, 25432
a zkuste spustit jak
prvnφ, tak druh² p°φklad. Pokud oΦekßvßte zobrazenφ Φφsla 2, pak
se m²lφte, nebo¥ se vrßtφ 25432. Toto je jedna z velk²ch v∞cφ binßrnφho
p°φstupu - a¥ zapisujete Φφslo nebo datovou strukturu, nezßle₧φ na
tom, jak jsou dlouhΘ polo₧ky, VB v₧dy vrßtφ sprßvnou dΘlku.
|