Binární soubory - řetězce

Zápis a čtení řetězců je trochu více složitější - v tomto případě totiž nevíme, jakou délku data mají. Takže pokud zapíšeme takovýto výstup:

Put #nFileNum, 1, "Krléš"

musíme vědět, že řetězec, který jsem zapsali, má délku pěti znaků, abychom jej mohli správně přečíst. Jak to ale udělat ? Jak říci VB, že řetězec je 5 znaků dlouhý, když zde není parametr Length pro příkaz Get ? To, co můžeme udělat před voláním příkazu Get, je inicializace řetězcové proměnné pomocí funkce Space$ a nastavením počtu mezer:

sString = Space$(5)

Nyní, když předáme proměnnou sString funkci Get, dostaneme zpět 5 znaků. Nejprve zapíšeme funkci pro zápis:

Dim nFileNum As Integer
nFileNum = FreeFile
Open App.Path & "\example.bin" For Binary Access _
   Write Lock Read Write As #nFileNum
Put #nFileNum, 1, "Krléš"
Close #nFileNum

a funkce pro načtení:

Dim nFileNum As Integer, sString As String
nFileNum = FreeFile
Open App.Path & "\example.bin" For Binary Access _
   Read Lock Read Write As #nFileNum
sString = Space$(5)
Get #nFileNum, 1, sString
Close #nFileNum
Msgbox sString

Zpět Další

Autor: The Bozena