Conteúdo
Índice 🔎︎

# Instrução Open

Abre um canal de dados.

### Sintaxe:

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

### Parâmetros:

pathname: Nome e caminho para o arquivo a abrir. Se tentar ler de um arquivo inexistente (Access = Read), é exibida uma mensagem de erro. Se tentar escrever para um arquivo inexistente (Access = Write), um novo arquivo é criado.

Mode: palavra-chave que especifica o modo do arquivo. Valores válidos: Append (acrescenta no final do arquivo sequencial), Binary (dados podem ser acessados por bytes que usam Get e Put), Input (abre canal de dados para leitura), Output (abre canal de dados para gravação) e Random (edita arquivos relativos).

io: Palavra-chave que define o tipo de acesso. Valores válidos: Read (somente leitura), Write (somente escrita), Read Write (ambos).

locaking: palavra-chave que define o status de segurança de um arquivo após a abertura. Valores válidos: Shared (o arquivo pode ser aberto por outros aplicativos), Lock Read (arquivo protegido contra leitura), Lock Write (arquivo protegido contra gravação), Lock Read Write (nega acesso ao arquivo).

filenum: qualquer expressão de número inteiro de 0 a 511 para indicar o número de um canal de dados livre. Você pode então passar comandos pelo canal de dados para acessar o arquivo. O número do arquivo deve ser determinado pela função FreeFile imediatamente antes da instrução Open.

recLen: para arquivos de acesso Random, define o tamanho dos registros.

Você só pode modificar o conteúdo de um arquivo aberto com a instrução Open. Se tentar abrir um arquivo que já esteja aberto, uma mensagem de erro será exibida.

### Exemplo:

      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, "Esta é uma linha de texto"
          Print #iNumber, "Esta é uma outra linha de texto"
          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, "Esta é uma linha de texto"
          Print #iNumber, "Esta é uma outra linha de texto"
          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

Se a instrução Open tentar abrir um arquivo para o qual o usuário atual não tem permissão de leitura / gravação, um erro de E / S será gerado.

Tópicos relacionados

Instrução Close

Função FreeFile

Instrução Input#

Instrução Print#