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