Contents
Index 🔎︎

# Öppna uttryck

Ö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