Dados de arquivo txt para Grid em delphi

Delphi

23/09/2015

Bom dia Amigos, preciso de uma ajuda, gostaria de saber como faço para coletar as informações de um arquivo.txt ,já criado, e colocar em um grid no delphi, as seguintes informações do arquivo txt são:


mat
Andre e Ana
h
Danilo
h
Lucas Guilherme
m
Vilma
m
Leticia
mat
Jonathan e Prisclilla

aonde o mat significa matrimonio, h = Homem e m= Mulher

aonde na coluna fica o nome e na outra coluna o tipo (Mat / H / M )

alguém poderia ajudar a coletar estas informações?
Geferson Piekarz

Geferson Piekarz

Curtidas 0

Respostas

Misterzire

Misterzire

23/09/2015

Eu utilizaria um componente CLIENTDATASET para ler o arquivo texto .
GOSTEI 0
Geferson Piekarz

Geferson Piekarz

23/09/2015

Bom dia , mas eu colocaria um dbgrid ou stringGrid para fazer isso? nem tenho ideia para fazer essa leitura do arquivo relacionado ao grupo mat/h/m com os respectivos nomes, poderia me ajudar só a começar, agradeço
GOSTEI 0
Raimundo Pereira

Raimundo Pereira

23/09/2015

Montanha, usando o CLIENTDATASET você coloca um datasource e linka CLIENTDATASET.
depois é só linkar o dbgrid ao datasource.
GOSTEI 0
Geferson Piekarz

Geferson Piekarz

23/09/2015

Consegui Inserir com os componentes relacionados , mas uma duvida para pegar os dados do arquivo txt com as informações:

mat
Andre e Ana
h
Danilo
h
Lucas Guilherme
m
Vilma
m
Leticia
mat
Jonathan e Prisclilla

aonde o mat significa matrimonio, h = Homem e m= Mulher

aonde no campo da coluna nome se relaciona com a palavra mat de matrimonio do arquivo texto;
No ClientDataSet criei as colunas NOME,GRUPO

exemplo:

h
Lucas guilherme

o h esta primeiro depois o nome da pessoa, conforme esta no texto do arquivo

aonde no grid ficaria
coluna nome : Lucas guilherme
coluna grupo:h

Fico no aguardo...
GOSTEI 0
Raimundo Pereira

Raimundo Pereira

23/09/2015

Montanha, Fiz um exemplo espero que ajude:

A ideia é que eu tenha dois arquivos separados por Grupo :

Grupo :M
Grupo :H

Ambos salvos separadamente.

Criei uma rotina que realiza a leitura e importa os registros . segue o código abaixo:


//VARIAVÉIS USADAS
VAR
TMP : TClientDataSet;
TMP_DS:TDataSource;

REGISTRO: string;
GRUPO_ARQ:STRING;

Posicao : integer;
ARQUIVO: TListBox;
//----------------------------------------------------------




implementation

{$R *.dfm}

//PROCEDIMENTO DE ISERT PARA O CLIENTDATASET
PROCEDURE Adicionar_registro();
BEGIN
REGISTRO:=( ARQUIVO.Items.Strings[Posicao]);
TMP.Insert;
TMP.FieldByName('NOME').AsString:=REGISTRO;
TMP.FieldByName('GRUPO').AsString:=GRUPO_ARQ;
TMP.post;

END;


Coloquei apenas um button 'Importar' e um dbgrid no form.

Segue o código do button

//--

begin
// CRIAÇÃO DO CLIENTE DATASET
TMP := TClientDataSet.Create(nil);
TMP.Close;
TMP.FieldDefs.Clear;
TMP.FieldDefs.add('GRUPO',ftString,1);
TMP.FieldDefs.add('NOME',ftString,30);
TMP.CreateDataSet;
// CRIAÇÃO DO DATASOURCE LINKADO AO CLIENTE DATASET
TMP_DS := TDataSource.Create(nil);
TMP_DS.DataSet := TMP;
// LINK DO DBGRID AO DATASOURCE
DBGrid1.DataSource:=TMP_DS;

// LENDO E IMPORTANDO DADOS DOS ARQUIVOS TXT
TMP.Active:=TRUE;
// IMPORTANDO ARQUIVO DE GRUPO H
//-------------------------------------------------------------
GRUPO_ARQ:='H';
ARQUIVO:=TListBox.CreateParented(Self.Handle);
ARQUIVO.Visible:=false;
ARQUIVO.Items.LoadFromFile('c:\'+GRUPO_ARQ);
for Posicao:=0 to ARQUIVO.Items.Count-1 do
Adicionar_registro; //ADICIONA LINHA DO ARQUIVO TXT AO CLIENTEDATASET

ARQUIVO.Free;
//-------------------------------------------------------------

// IMPORTANDO ARQUIVO DE GRUPO M
//-------------------------------------------------------------

begin
GRUPO_ARQ:='M';
ARQUIVO:=TListBox.CreateParented(Self.Handle);
ARQUIVO.Visible:=false;
ARQUIVO.Items.LoadFromFile('c:\'+GRUPO_ARQ);
for Posicao:=0 to ARQUIVO.Items.Count-1 do
Adicionar_registro; //ADICIONA LINHA DO ARQUIVO TXT AO CLIENTEDATASET

ARQUIVO.Free;
end;
//-------------------------------------------------------------

ShowMessage('Importação Finalizada');

end;

Resultado detalhado na IMG abaixp [img]http://arquivo.devmedia.com.br/forum/imagem/437747-20150923-172414.png[/img]
GOSTEI 0
POSTAR