Modul
Indhald
Innhaldsliste 🔎︎

# Open-uttrykket

Opnar ein datakanal.

## Syntaks:

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

## Parametrar:

FilNamn: Namn og sti for fila som skal opnast. Viss du prøver å opna ei fil som ikkje finst (tilgang = les), får du ei feilmelding. Viss du prøver å skriva til ei fil som ikkje finst (tilgang = skriv), vert ei ny fil oppretta.

Mode: Nøkkelord som bestemmer filmodus. Gyldige verdiar: «append» (legg til i sekvensiell fil), «binary» (data er tilgjengelege som byte med Get og Put), «input» (opnar datakanal for lesing), «output» (opnar datakanal for skriving) og «random» (redigerar relative filer).

IOMode: Nøkkelord som definerer tilgangstypen. Gyldige verdiar er Read (berre lesing, skriveverna), Write (berre skriving), Read Write (begge).

Protected: Nøkkelord som bestemmer tryggingsstatusen for ei fil som er opna. Gyldige verdiar er Shared (fila kan opnast av andre program), Lock Read (fila er verna mot lesing), Lock Write (fila er skriveverna), Lock Read Write (nektar filtilgang).

FilNummer. Kva heiltal som helst frå 0 til 511 for å indikera nummeret på ein fri datakanal. Du kan deretter overføra kommandoar gjennom datakanalen for å få tilgang til fila. Filnummeret må bestemmast av funksjonen FreeFile like før Open-kommandoen.

DatasetLength:Set lengd på datapostane i ei fil med direkte (random access) tilgang.

Du kan endra innhaldet i ei fil berre viss ho er opna med uttrykket Open. Viss du prøver å opna ei fil som er opna frå før, får du ei feilmelding.

## 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 ei tekstlinje"
        Print #iNumber, "Dette er ei tekstlinje til"
        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