Module
Contents
Index 🔎︎

# Open Statement

Öppnar en datakanal.

## Syntax:

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

## Parametrar:

Filnamn: Namn och sökväg för den fil du vill öppna. Om du försöker läsa en fil som inte existerar (Access = Read) visas ett felmeddelande. Om du försöker skriva till en fil som inte finns (Access = Write) skapas en ny fil.

Läge: Nyckelord som anger filläge. Giltiga värden: Append (lägg till i sekventiell fil), Binary (data kan kommas åt med byte med Get och Put), Input (öppnar datakanal för att läsa), Output (öppnar datakanal för att skriva) och Random (redigerar relativa filer).

IOMode: Nyckelord som definierar typ av åtkomst. Giltiga värden: Read (bara läsning), Write (bara skriva), Read Write (båda).

Protected: Nyckelord som definierar säkerhetsstatus för en fil när den har öppnats. Valid values: Shared (filen kan öppnas av andra program), Lock Read (filen är lässkyddad), Lock Write (filen är skrivskyddad), Lock Read Write (nekar filåtkomst).

FileNumber: Ett heltalsuttryck från 0 till 511 som anger numret på en ledig datakanal. Du kan sedan överföra kommandon via datakanalen för att komma åt filen. Filnumret måste bestämmas av funktionen FreeFile omedelbart före Open-satsen.

DatasetLength: Ange posternas längd för filer med Random-åtkomst.

Du kan bara ändra innehållet i en fil som är öppnad med en Open-sats. Om du försöker öppna en fil som redan är öppen visas ett felmeddelande.

## Exempel:

    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, "Det här är en textrad"

        Print #iNumber, "Det här är ytterligare en textrad"

        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