Desenvolvendo aplicações com Gambas

Ação "Abrir"

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.

La clase Dialog

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.

La clase File

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.

 << Anterior     Próximo >>  


Sobre este documento e o autor

Como mencionado anteriormente, a aplicação foi desenvolvida utilizando a versão 1.0-1 do Gambas (utilizando os pacotes pré compilados para Debian "Sid"). No momento que escrevo este documento a versão 1.0.3 acaba de ser publicada, e no momento que ler este documento Provavelmente há uma versão mais moderna. Convém ler a lista de troca de uma versão para outra pois pode haver alguma incompatibilidade.

Qualquer comentário sugerindo a melhora deste documento é bem vinda meu E-Mail é forodejazz (arroba) gmail (punto) com

Nota legal: Este documento é livre, pode copia-lo, vende-lo, distribui-lo, modifica-lo, traduzi-lo para outras linguagens e inclusive vende-lo, porem sempre conservando esta nota e citando a procedência do documento. Em qualquer caso, o autor agradeceria que o notificasse, em um dado momento, ser retribuído economicamente por seu esforço (se colar, colou ;-)

Notas

  1. Há um bom tutorial para iniciantes e documentação em Casterliano em http://gambas.gnulinex.org

  2. Os eventos devem ser tratados como procedimentos, isto é, uma função que não retorna valor algum.

  3. Não sou expert na terminologia usada em programação orientada a objetos, sendo que, provavelmente estarei algum termino incorreto. Minhas desculpas ;-)


Este conteúdo foi publicado por Antonio Sousa, respeitando as licenças  de publicações . Se for detectado algum erro na atribuição do tutorial relacionado com seus direitos de atribuição contate gambastutor@yahoo.com.br e procederemos as modificações


TUTORIAIS

   
Hosted by www.Geocities.ws

1