O que deve fazer?. Pedir ao usuário por um
arquivo, lê-lo e carregar o conteúdo no ListBox. Vejamos
diretamente a ação correspondente:
PUBLIC SUB Abrir_Click() DIM c AS String DIM arr_cadeias AS String[] Dialog.Title = "Selecione un arquivo" Dialog.Filter = [ "Dados da agenda (*.data)", "Todos os Arquivos (*.*)" ] IF NOT Dialog.OpenFile() THEN arr_cadeias = Split(File.LOAD(Dialog.Path), "\n") ListBox1.Clear()
FOR EACH c IN arr_cadeias ListBox1.Add(c) NEXT END IF
END
Esta parte do código apresenta uma característica muito
interessante do Gambas, as classes "não instanciáveis"
ou estáticas ( 3)
são classes que não pode estanciar-se mas podemos
utiliza-la diretamente. Nesta ação veremos duas destas
classes: a classe "File" e "Dialog".
Por exemplo, a classe Dialog proporciona
acesso aos típicos Quadro de diálogo de seleção
de arquivo, cores, etc. Está documentada em gb.qt.

Em nossa aplicação, queremos selecionar
um arquivo e carrega-lo. Para fazer isto utilizamos a classe Dialog
da seguinte forma:
Dialog.Title = "Seleccione un archivo" Dialog.Filter = [ "Datos de agenda (*.data)", "Todos los ficheros (*.*)" ] IF NOT Dialog.OpenFile() THEN ' etc ...
Ajustamos o título do quadro de diálogo, proporcionamos
um filtro para a seleção do tipo de arquivo por
extensão e finalmente invocamos o método OpenFile()
da classe. Curiosamente se não selecionarmos um arquivo (o
usuário pressionar "Cancelar", etc. ...) o valor de
retorno do método OpenFile() é True. Uma
vez selecionado o arquivo pelo usuário, podemos acessar o
endereço completo com a propriedade Dialog.Path.
A Classe File (Sua documentação
encontra-se na entrada gb ) proporciona vários métodos
para trabalhar com arquivos.

Na documentação do Gambas, na seção
"How do I ... " existem vários exemplos para ler e
escrever arquivos, nós vamos utilizar em nossa aplicação
o método Load() que recebe como argumento o endereço
de um arquivo e devolve uma String com todo o conteúdo
do arquivo. Para separar as linhas que contém o arquivo
utilizamos a função Split() que toma como
argumentos a cadeia que queremos "separar", o caracter a
utilizar como separador (um fim de linha em nosso caso, "\n")
e devolve uma Array de String. Por isso vamos declarar
a variável arr_cadeias como String[]:
DIM arr_cadenas AS String[]
Uma vez que temos a lista de cadeias contidas no
arquivo, limpamos o ListBox e vamos adicionando uma a uma cada
cadeia utilizando o método Add()
do ListBox.
|