Instrução Open

Abre um canal de dados.

Sintaxe:

Open NomeFicheiro As String [For Modo] [Access IOModo] [Protegido] As [#]NumFicheiro As Integer [Len = TamanhoDados]

Parâmetros:

NomeFicheiro: nome e caminho do ficheiro que pretende abrir. Se tentar ler um ficheiro que não existe (Acesso = Leitura), surge uma mensagem de erro. Se tentar gravar num ficheiro que não existe (Acesso = Escrita), é criado um novo ficheiro.

Modo: a palavra-chave que especifica o modo de ficheiro. Valores válidos: Anexar (anexar a ficheiro sequencial), Binário (os dados podem ser acedidos por bytes utilizando Get e Put), Entrada (abre um canal de dados para leitura), Saída (abre canal de dados para escrita) e Aleatório (edita ficheiros relativos).

IOModo: a palavra-chave que define o tipo de acesso. Valores válidos: Ler (só de leitura), Escrever (só de escrita), Ler e escrever (ambos).

Protegido: palavra-chave que define o estado de segurança de um ficheiro depois de ser aberto. O valores válidos são: Partilhado (o ficheiro pode ser aberto por outras aplicações), Bloquear leitura (o ficheiro está protegido contra leitura), Bloquear escrita (o ficheiro está protegido contra escrita), Bloquear leitura e escrita (nega o acesso ao ficheiro).

NumFicheiro: qualquer expressão de números inteiros de 0 a 511 para indicar o número de um canal de dados livre. É, então, possível transmitir comandos através do canal de dados para aceder ao ficheiro. O número do ficheiro tem de ser determinado pela função FreeFile imediatamente antes da instrução Open.

TamanhoDados: Para ficheiros de acesso aleatório, defina a dimensão dos registos.

Ícone de nota

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:\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