Indhold
Indholdsfortegnelse 🔎︎

# erklæringen Open

Åbner en datakanal.

### Syntaks:

    Open pathname For mode [Access io] [locking] As [#]filenum [Len=recLen]

### Parametre:

pathname: Sti til og navn på den fil, du vil åbne. Hvis du prøver at indlæse en fil, der ikke eksisterer (Access = Read), Vises en fejlmeddelelse. Hvis du vil skrive til en fil, der ikke eksisterer (Access = Write), oprettes en ny fil.

mode: Nøgleord, der angiver filtilstanden. Valid values: Append (tilføjer til en sekventiel fil), Binary (data er tilgængelige byte-vis med Get og Put), Input (åbner en datakanal til indlæsning), Output (åbner en datakanal til skrivning), og Random (redigerer relaterede filer).

io: Nøgleord, der definerer adgangstypen. Gyldige værdier: Read (læse-adgang), Write (skrive-adgang), Read Write (begge).

locking: Nøgleord, der definerer en fils sikkerhedsstatus efter åbning. Gyldige værdier: Shared (filen kan være åbnet af andre programmer), Lock Read (filen er beskyttet mod læsning), Lock Write (filen er beskyttet mod skrivning), Lock Read Write (nægter filadgang).

filenum: Ethvert heltalsudtryk fra 0 til 511 til at angive nummeret på en fri datakanal. Du kan dereftefter sende kommandoer gennem datakanalen for at tilgå filen. Filnummeret skal bestemmes med funktion FreeFile umiddelbart før erklæringen Open.

recLen: Ved Random access-filer sætter du længden på posterne.

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:\Users\ThisUser\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

      Sub ExampleWorkWithAFile
          Dim iNumber As Integer
          Dim sLine As String
          Dim aFile As String
          Dim sMsg As String
          aFile = "~/data.txt"
          iNumber = Freefile
          Open aFile For Output As #iNumber
          Print #iNumber, "Dette er en tekstlinje"
          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

Hvis udtrykket Open (åbn) prøver at åbne en fil, som den aktuelle bruger ikke har læse/skrive-rettigheder til, sættes et I/O-fejlflag.

Relaterede emner

udtrykket Close

FreeFile (funktion)

udtrykket Input#

Print# Statement