Ukaz Open
Odpre kanal za podatke.
Skladnja:
Open ImeDatoteke As String [For Način] [Access VInačin] [Protected] As [#]ŠtevilkaDatoteke As Integer [Len = DolžinaZapisa]
Parametri:
ImeDatoteke: Ime in pot do datoteke, ki jo želite odpreti. Če poskusite prebrati datoteko, ki ne obstaja (Access = Read), se pojavi sporočilo o napaki. Če poskusite pisati v datoteko, ki ne obstaja (Access = Write), se ustvari nova datoteka.
Način: ključna beseda, ki določa vrsta dostopa do datoteke. Veljavne vrednosti: Append ( dodajanje v obstoječo datoteko), Binary (podatki so dostopni po bajtih z uporabo funkcij Get in Put), Input (odpre podatkovni kanal za branje), Output (odpre podatkovni kanal za pisanje) in Random (urejanje relativne datoteke).
VInačin: ključna beseda, ki določa način dostopa: Veljavne vrednosti: Read (samo za branje), Write (samo za pisanje), Read Write (oboje).
Protected: ključna beseda, ki določa stanje zaščite za datoteko, potem ko se jo je odprlo. Veljavne vrednosti: Shared (datoteko smejo odpreti tudi drugi programi), Lock Read (datoteka je zavarovana proti branju), Lock Write (datoteka je zavarovana proti pisanju), Lock Read Write (ne dovoljuje dostopa do datoteke).
iŠtevilka: Izraz, ki vrača celoštevilčno vrednost med 0 in 511, s katero se označuje prosti kanal za podatke. Po tem kanalu lahko potem pošiljamo podatke, s katerimi dostopamo do datoteke. Številko datoteke moramo določiti tik pred ukazom Open s pomočjo funkcije FreeFile.
DolžinaZapisa: Za datoteke z naključnim dostopom nastavi dolžino zapisov.
Spreminjate lahko vsebino datoteke samo, če je najprej odprta z ukazom Open. Če skušate odpreti datoteko, ki je že odprta, se prikaže sporočilo o napaki.
Primer:
Sub ExampleWorkWithAFile
Dim iNumber As Integer
Dim sLine As String
Dim aFile As String
Dim sMsg As String
aFile = "c:\data.txt"
iNumber = Freefile
Open aFile For Output As #iNumber
Print #iStevilka, "To je vrstica z besedilom"
Print #iStevilka, "To je še ena vrstica z besedilom"
Close #iNumber
iNumber = Freefile
Open aFile For Input As iNumber
While Not eof(iNumber)
Line Input #iNumber, sLine
If sLine <>"" Then
sMsg = sMsg & sLine & chr(13)
End If
Wend
Close #iNumber
MsgBox sMsg
End Sub