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, som du vil åbne. Hvis du forsøger at læse en fil som ikke eksister (adgang = læserettighed), vil en fejlmeddelelse fremkomme. Hvis du forsøger at skrive til en fil som ikke eksisterer (adgang = skriverettighed), vil en ny fil blive oprettet.

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