Txt + memo + clientdataset que não funciona
Saudações amigos, tudo bem?
Já faz 7 anos que deixei de programar e agora surgiu a demanda de fazer umas ferramentas específicas para a equipe de vendas aqui da empresa. Como era de se esperar, estou pior do que antes de ter começado a aprender.
A questão é a seguinte:
- Tenho um arquivo .txt com dados dos produtos comercializados e preços. Formato abaixo (CATEGORIA|DESCRIÇÃO|PREÇO_A|PREÇO_B|PREÇO_C|PREÇO_D):
FERRAGEM|KIT01 - PORTA SIMPLES PIVOTANTE (ABRIR)|R$ 75,00|R$ 71,00|R$ 90,00|R$ 85,00
KIT BOX|KIT01 - PORTA SIMPLES PIVOTANTE (ABRIR)|R$ 75,00|R$ 71,00|R$ 90,00|R$ 85,00
ALUMÍNIO|KIT01 - PORTA SIMPLES PIVOTANTE (ABRIR)|R$ 75,00|R$ 71,00|R$ 90,00|R$ 85,00
Preciso das informações deste .txt desmembradas por linhas e pelos campos que estão separados pelas barras. Estou usando um DBGrid, DataSource, ClientDataSet e um Memo.
Os componentes já estão todos conectados, fields criados, e memo carregado. Até aí tudo ok.
A questão é fazer o loop para ler o .txt, desmembrar os campos e inserí-los no Clientdataset. Copiando e colando de vários lugares, cheguei no seguinte bloco, que parece estar com muita coisa sem sentido:
memoProdutos.Lines.LoadFromFile('base_dados.txt');
dados := memoProdutos.Lines.Text;
Lista := TStringList.Create;
try
iRetorno := ExtractStrings(['|'],[' '],PChar(Dados),Lista);
for I := 0 to Pred(memoProdutos.Lines.Count) do
begin
cdsProdutos.Append;
cdsProdutos.FieldByName('CATEGORIA').AsString := lista.Strings[0];
cdsProdutos.FieldByName('DESCRICAO').AsString := lista.Strings[1];
cdsProdutos.FieldByName('VAL_TOTAL_VIDR').AsString := lista.Strings[2];
cdsProdutos.FieldByName('VAL_DESC_VIDR').AsString := lista.Strings[3];
cdsProdutos.FieldByName('VAL_TOTAL_COFI').AsString := lista.Strings[4];
cdsProdutos.FieldByName('VAL_DESC_COFI').AsString := lista.Strings[5];
cdsProdutos.Post;
end;
finally
Lista.Free;
end;
Alguém faria a bondade de me ajudar?
Já faz 7 anos que deixei de programar e agora surgiu a demanda de fazer umas ferramentas específicas para a equipe de vendas aqui da empresa. Como era de se esperar, estou pior do que antes de ter começado a aprender.
A questão é a seguinte:
- Tenho um arquivo .txt com dados dos produtos comercializados e preços. Formato abaixo (CATEGORIA|DESCRIÇÃO|PREÇO_A|PREÇO_B|PREÇO_C|PREÇO_D):
FERRAGEM|KIT01 - PORTA SIMPLES PIVOTANTE (ABRIR)|R$ 75,00|R$ 71,00|R$ 90,00|R$ 85,00
KIT BOX|KIT01 - PORTA SIMPLES PIVOTANTE (ABRIR)|R$ 75,00|R$ 71,00|R$ 90,00|R$ 85,00
ALUMÍNIO|KIT01 - PORTA SIMPLES PIVOTANTE (ABRIR)|R$ 75,00|R$ 71,00|R$ 90,00|R$ 85,00
Preciso das informações deste .txt desmembradas por linhas e pelos campos que estão separados pelas barras. Estou usando um DBGrid, DataSource, ClientDataSet e um Memo.
Os componentes já estão todos conectados, fields criados, e memo carregado. Até aí tudo ok.
A questão é fazer o loop para ler o .txt, desmembrar os campos e inserí-los no Clientdataset. Copiando e colando de vários lugares, cheguei no seguinte bloco, que parece estar com muita coisa sem sentido:
memoProdutos.Lines.LoadFromFile('base_dados.txt');
dados := memoProdutos.Lines.Text;
Lista := TStringList.Create;
try
iRetorno := ExtractStrings(['|'],[' '],PChar(Dados),Lista);
for I := 0 to Pred(memoProdutos.Lines.Count) do
begin
cdsProdutos.Append;
cdsProdutos.FieldByName('CATEGORIA').AsString := lista.Strings[0];
cdsProdutos.FieldByName('DESCRICAO').AsString := lista.Strings[1];
cdsProdutos.FieldByName('VAL_TOTAL_VIDR').AsString := lista.Strings[2];
cdsProdutos.FieldByName('VAL_DESC_VIDR').AsString := lista.Strings[3];
cdsProdutos.FieldByName('VAL_TOTAL_COFI').AsString := lista.Strings[4];
cdsProdutos.FieldByName('VAL_DESC_COFI').AsString := lista.Strings[5];
cdsProdutos.Post;
end;
finally
Lista.Free;
end;
Alguém faria a bondade de me ajudar?
Bruce
Curtidas 0
Respostas
Thiago Santana
29/04/2015
Albert, qual problema você está tendo?
Sua rotina está precisando de qual ajuste?
Sua rotina está precisando de qual ajuste?
GOSTEI 0
Bruce
29/04/2015
Thiago, muito obrigado pela disposição em me ajudar.
Está acontecendo que o .txt tem as seguintes informações:
FERRAGEM|KIT01 - PORTA SIMPLES PIVOTANTE (ABRIR)|R$ 75,00|R$ 71,00|R$ 90,00|R$ 85,00
KIT BOX|KIT03 - JANELA DE CORRER 4 FOLHAS|R$ 55,00|R$ 51,00|R$ 70,00|R$ 65,00
ALUMÍNIO|AL65 - TRILHO SUPERIOR PARA JANELA|R$ 65,00|R$ 61,00|R$ 80,00|R$ 75,00
Mas ele só está pegando as duas primeiras informações e as replicando, além de estar colocando vários caracteres estranhos. Dá uma conferida no print da tela:
http://i.imgur.com/6rbVzq9.jpg
Não faço nem ideia de como arrumar isto.
Muito obrigado.
Está acontecendo que o .txt tem as seguintes informações:
FERRAGEM|KIT01 - PORTA SIMPLES PIVOTANTE (ABRIR)|R$ 75,00|R$ 71,00|R$ 90,00|R$ 85,00
KIT BOX|KIT03 - JANELA DE CORRER 4 FOLHAS|R$ 55,00|R$ 51,00|R$ 70,00|R$ 65,00
ALUMÍNIO|AL65 - TRILHO SUPERIOR PARA JANELA|R$ 65,00|R$ 61,00|R$ 80,00|R$ 75,00
Mas ele só está pegando as duas primeiras informações e as replicando, além de estar colocando vários caracteres estranhos. Dá uma conferida no print da tela:
http://i.imgur.com/6rbVzq9.jpg
Não faço nem ideia de como arrumar isto.
Muito obrigado.
GOSTEI 0