Ubuntu Para Iniciantes

LER UM ARQUIVO TEXTO E LISTAR NO STRINGGRID DO LAZARUS

As possibilidade são muitas, principalmente quando o assunto é linguagem de programação.

Você com certeza já se deparou com a pergunta "COMO EU POSSO FAZER ISSO?" ou mesmo "SERÁ QUE DÁ PARA FAZER ISSO?".

Bem a resposta é quase sempre a mesma, depende! Sim, depende da linguagem que você está usando e também óbvio, do seu grau de conhecimento sobre a linguagem de programação.

O que você irá ver nesta postagem sobre o Lazarus:

  • Uma breve explicação sobre o Lazarus
  • Criar arquivos com a IDE do Lazarus 
  • Ler um arquivo texto e listar em um StringGrid

manipular arquivos de texto com o lazarus

O QUE É O DE FATO O LAZARUS

Muitos identificam o Lazarus como sendo um "clone do Delphi", isto porque sua IDE é realmente muito semelhante a plataforma do Delphi. Além de haver uma grande aproximação na sintaxe da linguagem, ou seja, as funções, operações e estrutura de codificação são basicamente as mesmas.

Existem sim, algumas poucas diferenças entre as plataformas, mas que não serão abordadas neste post.

Mas é bom deixar claro que, você pode ter uma instalação desta fantástica ferramenta de desenvolvimento em sua distribuição Linux, como também em um ambiente Windows. No final do post estará o link para você fazer a instalação para Windows.

Para continuarmos o esclarecimento sobre esta ferramenta, uma IDE, do inglês Integrated Development Environment, quer dizer, Ambiente de Desenvolvimento Integrado. Isto quer dizer que neste ambiente você terá várias ferramentas prontas, com formulários, botões, caixas de listagens, ferramentas para conexão com banco de dados praticamente prontas para o uso, otimizando o tempo de codificação. 

O que faz do Lazarus uma ferramenta RAD que quer dizer Rapid Application Development, traduzido para "Desenvolvimento Rápido de Aplicações". Portanto você já percebeu que este tipo de ferramenta permite que o desenvolvedor se preocupe mais com a estrutura de algorítimos, a codificação em si.

A imagem abaixo trás a estrutura de desenvolvimento da IDE do Lazarus em quatro partes distintas, confira:

ide de desenvolviento do lazarus para ubuntu e windows

Abaixo um explicação simples das quatro partes da IDE para que você possa entender melhor: 

1. Acesso a paleta de ferramentas: Nesta paleta você poderá encontrar uma infinidade de ferramentas, como diversos tipos de botões, painéis, botões de rádio, caixa de textos e várias outras aplicações para formulários com conexão a um banco de dados.

2. Unit: A Unit é o ambiente de codificação. É nesta sessão que o desenvolvedor irá efetuar a programação em si. É na Unit por exemplo que se constrói outras funções, cria-se variáveis e constantes. Também é nesta sessão que o desenvolvedor irá codificar as ações do botões e outros componentes inseridos em um formulário ou form.

3. Form: O Form é um componente do Lazarus/Delphi que acompanha toda Unit, isso quer dizer que, dependendo da sua escolha, toda nova Unit terá um formulário "anexo" a ela. Também é possível criar Units sem forms, mas nãos será abordado neste momento.


4. Object Inspector: Esta paleta que fica geralmente alinhada ao lado esquerdo da Unit, é uma ferramenta de extrema importância. Por meio do Object Inspector o desenvolvedor poderá definir algumas ações otimizadas para os mais diversos componentes contidos na IDE. 

Esta foi uma abordagem simplificada do que vem a ser o Lazarus, mas para concluir, assim também como no Delphi, esta ferramenta livre, utiliza da mesma linguagem de programação o Pascal, que também é conhecida como Object Pascal.  

E garanto, não menospreze a potencialidade da ferramenta por considerar que a linguagem de programação está ultrapassada.  

CÓDIGO PARA CRIAR UM ARQUIVO TXT COM O LAZARUS

Assim, como nas mais diversas linguagens disponíveis, o processo de criar arquivos de texto no Lazarus é extremamente simples.

O formulário que nós iremos criar irá ter o aspecto da imagem abaixo, haverá apenas dois botões, uma caixa de texto e um componente StringGrid.

formulario para ler arquivos no lazarus

Veja que os componentes dos botões e da caixa de texto estão com seus nomes padrões, para ficar melhor em tempo de execução e também para melhor compreensão, será feito alguns pequenos ajustes no Object Inspector.

Entendendo melhor, há cinco componentes que podem ser manipulados pelo desenvolvedor, o próprio formulário, dois botões, uma caixa de texto e um StringGrid.

Estes componentes possuem várias propriedades que podem ser alteradas no Object Inspector. Cada um dos componentes será identificados pelos seus nomes de referência, componentes:

Formulário: Form1
Botões: Button1 e Button2
Caixa de texto: Edit1
Grade: StringGrid1

Será alterado penas a propriedade CAPTION dos componentes de botões e caixa de texto, os NOMES não sofrerão qualquer alteração.

Será necessário ir até o Formulário e clicar componente por componente para que se altere a propriedade dos captions.

Clique na caixa de texto que está no Formulário, no Object Inspector, procure a propriedade Text e apague o valor Edit1, veja não estamos apagando o NOME mas sim o TEXTO, o nome continuará sendo Edit1.

Veja a imagem abaixo com a marcação para a propriedade Text da caixa de texto no Object Inspector, apague:


alterar prorpriedade do componente edit no object inspector no lazarus

Será alterado a propriedade Caption dos botões, da mesma forma como foi feito, clicando e alterando o valor no Object Inspector.

Para o botão ao lado da caixa de texto do nosso formulário digite "Gravar", quando clicarmos neste botão ele irá inserir um texto em nosso arquivo.

Para o botão que está abaixo do StringGrid será colocado "Listar", ao ser clicado ele irá listar linha por linha que foi inserida no texto.

Este processo é relativamente simples, e serve para que possamos aprender como manipular arquivos de texto e também a extrair dados para um StringGrid no Lazarus.

Agora será alterado duas propriedades do StringGrid, selecione este componente clicando sobre ele. Vá até o Object Inspector e altere estas duas propriedades, elas não estão próximas, mas é só navegar entre as propriedades que você irá encontrar.

Abaixo estão as propriedades que você deverá alterar já com os valores que serão atribuídos:

ColCount   = 2
RowCount = 2

Ao alterar as propriedades dos componentes da forma como foi indicada, seu formulário deverá ter uma aspecto semelhante a figura abaixo:

formulario para manipular arquivos com stringgrid no lazarus

Se caso você não entendeu, recomendo que leia novamente e volte alguns passos, no geral é muito simples. Se for sua primeira vez que está tendo contato com o Lazarus ou mesmo com o Delphi, acredite, todos os processos que estão sendo realizados até aqui são muito simples, porém requer paciência.

PROGRAMAR PARA GERAR O ARQUIVO TEXTO NO LAZARUS

Até agora o que fizemos foi na verdade trabalhar apenas com o aspecto visual, enquanto colocamos os componentes no formulário o próprio Lazarus incluía uma codificação básica de cada componente.

Se você não salvou até agora seu projeto, recomendo que salve. O Lazarus irá pedir para você salvar cada um dos arquivos que compõem o projeto. Será gera um arquivo .lpi e outro .pas.

Salve seus arquivos em uma pasta definida por você, de preferência crie uma pasta para o seu projeto.

O arquivo .LPI é o seu projeto em sí, o arquivo .PAS é codificação que será compilada para gerar o "executável". Geralmente o primeiro arquivo é o projeto, você pode salvar como GerarArquivo.lpi e o outro é a Unit, salve como UgerarArquivo.pas ou mesmo com o nome que desejar.

PROGRAMANDO NO LAZARUS

Iremos criar um arquivo chamado lista.txt, para isso clique duas vezes no botão com o nome Gravar.  Antes do Begin, crie uma variável chamada arquivo, que será do tipo TextFile.

Feito isso, abaixo do Begin, onde é especificado as execuções do botão, usaremos a função AssignFile.  Esta função irá associar a variável arquivo que criamos anteriormente e o arquivo lista.txt que será criado.

Não será feito nenhum tratamento mais refinado no código para que possa deixa-lo o mais simples possível e simples de ser entendido.

Abaixo está todas as funções que foram usadas para gerar o arquivo e escrever em tempo e execução:

AssingFile: Associa um arquivo o seu nome lógico do tipo TextFile, define o local onde o arquivo será salvo ou criado.

Rewrite: Cria o arquivo propriamente dito e ou prepara para processamento leitura/escrita

Append: Insere o ponteiro no final do arquivo, permitindo inserir os dados

WriteLn: Função com dois parâmetros, recebe o nome lógico do arquivo e o texto a ser inserido, além de marcar o final da linha.

CloseFile: Fecha o arquivo após o processamento.

Logo abaixo está a codificação para gerar o arquivo caso ele não exista e inserir os dados digitados na caixa de texto:

procedure TForm1.Button1Click(Sender: TObject);
var
  arquivo: TextFile;
begin

  //caso o arquivo não exista será criado
  //ao cria o arquivo será inserido os dados
  //apos inserir os dados o campo de texto será limpo

  if not FileExists('lista.txt') then
  begin
   AssignFile(arquivo, 'lista.txt');
   Rewrite(arquivo);
   WriteLn(arquivo,Edit1.Text);
   Edit1.Text:='';
   CloseFile(arquivo);
  end else
  begin
   //Caso arquivo esteja criado
   //prepara o arquivo para inserir dados

   AssignFile(arquivo, 'lista.txt');
   append(arquivo);
   WriteLn(arquivo,Edit1.Text);
   Edit1.Text:='';
   CloseFile(arquivo);
   end;

end; 


Feito a codificação do botão Gravar, agora será feito o código para o botão Listar, como feito dito anteriormente não será feito nenhum tipo de tratamento além do processamento para ler o arquivo e listar o StringGrid.

Clique duas vezes no botão Listar, assim como anteriormente no botão Gravar, vamos programar o que deve ser feito quando ser clicado no botão.

Antes do Begin, escreva a palavra var para para dizer ao compilador que será criado alguma variável.

Iremos criar 3 variáveis:
  1. lerArquivo que será do tipo TextFile
  2. linha que será do tipo string
  3. i que será do tipo integer
Poderíamos fazer tudo diferente, desde o começo, no entanto fica para seu aprendizado a forma de melhorar a codificação.

A variável lerArquivo ser o nome lógico do nosso arquivo que teoricamente já foi gravado.

Já a variável linha receberá o conteúdo de cada linha do texto que já foi gravado no arquivo.

Iremos usar a variável i para contar o número de loops e assim criar novas linhas no StringGrid.

Iremos usar algumas outras funções nesta codificação, que são:

1. FileExists: Função para verificar se um determinado arquivo existe, retorna verdadeiro caso já esteja criado ou falso caso não. 

2. ShowMessage: É uma função simples, que permite emitir uma mensagem de aviso. Iremos colocar em uma condição.

3. Reset: Esta função irá indicar que o arquivo está pronto para leitura. Também coloca o ponteiro no inicio do arquivo.

4. ReadLn: Esta função permite ler a linha do arquivo. Há dois parâmetros, o nome do arquivo lógico e a variável que irá conter o valor da linha que foi lida.

5. RowCount: Este é uma propriedade do StringGrid, por meio é controlado o número de linhas que um StringGrid irá ter.

6. Cells: Também é uma propriedade do StringGrid, define a célula onde será alocada a informação, no nosso caso será a variável linha.
As linhas abaixo contém a codificação para o botão de listar, mesmo que você copie e cole este código, estude para que possa fazer seu próprio código e ainda melhor. 
procedure TForm1.Button2Click(Sender: TObject);
var
  //definição das variáveis
  lerArquivo: TextFile;
  linha:string;
  i:integer;
begin
  i:=1; // define o valor inicial da variável i
  //cria uma condição para saber se o arquivo
  //existe ou não, caso não seja criado será emitido
  //a mensagem "Não há dados para serem listados"

  if not FileExists('lista.txt') then
  begin
   ShowMessage('Não há dados para serem listados');
  end else
  begin

   //caso o arquivo tenha sido criado
   //as linhas abaixo preparam o arquivo para
   //processamento e leitura
   //o nome lógico do arquivo é atribuído para lerArquivo

     AssignFile(lerArquivo, 'lista.txt');
     Reset(lerArquivo);
    //percorre o arquivo para
    while not eof(lerArquivo) do
     begin
       //cria a cada loop uma nova linha para a célula
       StringGrid1.RowCount:=StringGrid1.RowCount+1;
       //faz a leitura da linha do arquivo
       ReadLn(lerArquivo,linha);
       //aloca o valor na célula 1,2,3..n
       StringGrid1.Cells[1,i]:=linha;
      //incrementa o valor
      //para controlar as células
      i:=i+1;
     end;
     CloseFile(lerArquivo);
  end;

end;


Ao clicar no botão listar, caso já tenha feito a gravação de algum conteúdo no arquivo, será exibido o valor de cada linha célula por célula no StringGrid.

A imagem abaixo mostra uma lista das linhas no grade do componente do StringGrid:

listagem no stringgrid do lazarus


Você deve ter percebido que sobrou uma célula em vazia na lista do StringGrid, para você evitar isso, é muito simples, basta você selecionar o componente e ir até o Object Inspector e na propriedade RowCount e alterar o valor 2 para 1.

Espero que você tenha gostado desta postagem e tenha contribuído com seu conhecimento.

Você também poderá gostar destas outras postagens:
Criar relatórios em PDF com cabeçalho em PHP
Gerando gráficos com PHP
Criar tabela e gerar uma consulta com case when no Postgres

Seguindo aqui você pode fazer download do Lazarus para Windows e também para distribuições Linux.

Seja bem vindo ao Ubuntu Para Iniciantes. Muito obrigado por sua visita. Deixe seu comentário logo abaixo com suas criticas e sugestões. 


Fonte:
http://www.devmedia.com.br/criando-e-gravando-dados-em-txt-com-delphi/22630
http://wiki.freepascal.org/Lazarus_Tutorial/pt 


LER UM ARQUIVO TEXTO E LISTAR NO STRINGGRID DO LAZARUS Reviewed by Ubuntu para Iniciantes Marcelo Weihmayr on 12:07:00 Rating: 5

Nenhum comentário :

Olá, faça seu comentário com sugestões, dicas ou críticas

Powered By Blogger , Designed by Sweetheme

Formulário de contato

Nome

E-mail *

Mensagem *

Marcelo Weihmayr. Tecnologia do Blogger.