Conteúdo

# Declaração de abertura

Abre um canal de dados.

### Sintaxe:

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

### Parâmetros:

pathname: Caminho e nome do ficheiro a abrir. Se tentar ler um ficheiro que não existe (Acesso = Leitura), é apresentada uma mensagem de erro. Se tentar escrever num ficheiro que não existe (Acesso = Escrita), é criado um novo ficheiro.

mode: Palavra-chave que especifica o modo do ficheiro. Valores válidos: Append (acrescentar ao ficheiro sequencial), Binary (os dados podem ser acedidos por bytes utilizando Get e Put), Input (abre o canal de dados para leitura), Output (abre o canal de dados para escrita) e Random (edita ficheiros relativos).

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

bloqueio: Palavra-chave que define o estado de segurança de um ficheiro após a sua abertura. Valores válidos: Partilhado (o ficheiro pode ser aberto por outras aplicações), Bloqueado para leitura (o ficheiro está protegido contra leitura), Bloqueado para escrita (o ficheiro está protegido contra escrita), Bloqueado para leitura e escrita (nega o acesso ao ficheiro).

filenum: Qualquer expressão inteira entre 0 e 511 para indicar o número de um canal de dados livre. Pode então enviar comandos através do canal de dados para aceder ao ficheiro. O número do ficheiro deve ser determinado pela função FreeFile imediatamente antes da instrução Open.

recLen: Para ficheiros de acesso aleatório, defina o comprimento dos registos.

Só pode modificar o conteúdo de um ficheiro que foi aberto com a instrução Open. Se tentar abrir um ficheiro que já esteja aberto, surge uma mensagem de erro.

### 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 do texto"
          Print #iNumber, "Esta é 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 é 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 ficheiro para o qual o utilizador atual não tenha permissões de leitura/gravação, será gerado um erro de E/S.

Tópicos relacionados

Declaração de encerramento

Função FreeFile

Declaração de entrada n.º

Declaração Print#

Necessitamos da sua ajuda!