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.
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