Open-udtryk

Åbner en datakanal.

Syntaks:


Open FileName As String [For Mode] [Access IOMode] [Protected] As [#]FileNumber As Integer [Len = DatasetLength]

Parametre:

Filnavn: Navn og sti på den fil, du vil åbne. Hvis du forsøger at læse en fil, som ikke eksisterer (adgang = læserettighed), kommer en fejlmeddelelse frem. Hvis du forsøger at skrive til en fil, som ikke eksisterer (adgang = skriverettighed), oprettes der en ny fil.

Mode: Nøgleord som angiver filens tilstand. Gyldige værdier: Append (tilføj til sekventiel fil), binary (data kan tilgås af bytes ved brug af Get og Put), Input (åbner datakanal for læsning), Output (åbner datakanal for skrivning), og Random (redigerer relative filer).

IOMode: Nøgleord, som definerer adgangstypen. Gyldige værdier: Read (læs-kun), Write (skriv-kun), Read Write (begge).

Protected: Nøgleord som definerer sikkerhedsstatus for en fil efter åbning. Gyldige værdier: Shared (fil kan åbnes af andre programmer), Lock Read (fil er beskyttet imod læsning), Lock Write (fil er beskyttet imod skrivning), Lock Read Write (nægter filadgang).

FileNumber: Hvilket som helst heltalsudtryk mellem 0 og 511 der indiker nummeret på en fri datakanal. Du kan så passere kommandoer gennem datakanalen for at tilgå filen. Filtallet skal bestemmes af funktionen FreeFile straks før sætningen Open.

DatasetLength: For filer med vilkårlig adgang, sæt længden af dataposterne.

Noteikon

Du kan kun ændre indholdet af en fil, som blev åbnet med Open-sætningen. Hvis du forsøger at åbne en fil der allerede er åbnet, vil en fejlmeddelelse fremkomme.


Eksempel:


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 #iNumber, "Dette er en linje tekst"
    Print #iNumber, "Dette er en anden tekstlinje"
    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