Fórum Extrair dados arquivo texto #388024
06/10/2010
0
empresa...... DEMONSTRATIVO De PAGAMENTO Folha: 5
empresa ........
------------------------------------------------------------------------------------------------------------------------------------ Unidade Fornecedor: 111 Unidade: 1111 Codigo: 00011111 fulano de tal tal Fornecedor: 000011111
Proced
Tipo Movto Eve Descricao Gr Descricao Insumo Descricao Qtde Valor
------------ --- ------------------------------ -- ----------------- -------- ------------------------------ ------- ---------------
Impostos 12 INSS 00 Generico 00000000 Generico 1 29,40
Impostos 12 INSS 00 Generico 00000000 Generico 1 29,40
Impostos 12 INSS 00 Generico 00000000 Generico 1 29,40
Valor IRRF: 0,00 Base IRRF: 155,40 Deducao Dependentes: 0,00
Valor INSS: 29,40 Base INSS JUR: 84,00 Base INSS BEN: 0,00 Base INSS FIS: 100,80
Valor ISS: 0,00 Base ISS Proc: 0,00 Base ISS Ins: 0,00 Base ISS Extra: 0,00
Vl Imposto Unico: 0,00 Base Imp Unico: 0,00 Base Imp Unico Ins: 0,00
Valor COFINS: 0,00 Base COFINS: 0,00 Base COFINS Ins: 0,00
Valor PIS/PASEP: 0,00 Base PIS/PASEP: 0,00 Base PIS Ins: 0,00
Valor CSLL: 0,00 Base CSLL: 0,00 Base CSLL Ins: 0,00
Valor Desconto: 25,00 Valor Glosas: 0,00 Valor Producao: 184,80
Valor Extra: 0,00 Valor Bruto: 184,80 Valor Liquido: 130,40
----------------------------------------------------------------------------------------------------------------------------------- eu preciso pegar para cada Codigo ex.: 00011111 fulano de tal tal... extrair o relatorio dele, salvar com um nome.txt e depois enviar via ftp para uma pasta que contem o codigo dele Não sei bem se deu para entender, mais basicamente é isso, preciso extrair um relatorio de acordo com o codigo dele, e depois salvar numa pasta do ftp cujo nome é o codigo dele. porem esse relatorio contem varios fornecedores.
Junior
Curtir tópico
+ 0Posts
06/10/2010
Wesley Batista
Uma dúvida este relatório tem sempre este layout ?
Quando você diz extrair o " relatório dele ", você quer extrair quais informações ?
Sabe enviar via FTP ?
Temos 3 problemas para resolver, Layout, extração, e envio.
O mais importante é entender o layout do relatório, tem que saber o layout, padrão, posições isso é extremamente importante, você sabe o padrão ? Sabe quais são as linhas e colunas que você deve copiar ? No seu exemplo você tem :
1------------------------------------------------------------------------------------------------------------------------------------
2empresa...... DEMONSTRATIVO De PAGAMENTO Folha: 5
3empresa ........
4------------------------------------------------------------------------------------------------------------------------------------
5Unidade Fornecedor: 111 Unidade: 1111
6Codigo: 00011111 fulano de tal tal Fornecedor: 000011111
Na linha 6, posição 9(por exemplo) começa o código do seu cliente, isso é padrão ?
Sendo assim você poderia pegar ele usando o copy, conhece esta função ?
vamos trocando uma ideia para amadurecermos os pensamentos.
Um abraço
Wesley Batista
Gostei + 0
07/10/2010
Junior
Vamos lá..
1o Esse relatório é um layout padrão sim, ele sempre gera dessa forma, porem tenho de todos fornecedores em um arquivo só, então vem segundo problema..
2o eu quero separar os fornecedores desse relatorio em um arquivo para cada fornecedor(no caso copiar todo o demonstrativo do fornecedor e não só alguns campos),pois isso hj é feito manual, são muitos fornecedores isso demora muito pra separa-los no "braço". Ai quando eu enviar para o ftp, o sistema do site buscara esse relatorio e vai gerar um pdf, para ficar disponivel online para os fornecedores.
3o No caso do envio para o ftp acho que é o de menos pesquisei um pouco e não me pareceu dificil.
Acho que seria com essa função copy mesmo, porem não sei como delimitar onde ele começa e onde termina o que eu devo copiar.
Gostei + 0
07/10/2010
Anderson
var
vt_Origem,vt_destino:TStringList;
in_in,in_fi:integer;
bo_copiar:boolean;
sc_fornecedor:string;
begin
vt_Origem:=TStringList.Create;
vt_Destino:=TStringList.Create;
vt_Origem.LoadFromFile('nomedoarquivodetexto.txt');
in_in:=0;
in_fi:=vt_Origem.Count-1;
while in_in<in_fi do
begin
if leftstr(vt_Origem[in_in],19)='Unidade Fornecedor:' then
bo_copiar:=True;
if bo_copiar=True then
vt_Destino.Add(vt_Origem[in_in]);
if (pos('Codigo:',vt_Origem[in_in])>0) and
(pos(' Fornecedor:',vt_Origem[in_in])>0) then
sc_fornecedor:=copy(vt_Origem[in_in],AquiNroPosiciaoInicialCodigoFornecedor,TamanhoCodigoFornecedor)+'.txt';
if pos('Valor Liquido:',vt_Origem[in_in])>0 then
begin
vt_Destino.SaveToFile(sc_fornecedor);
vt_Destino.Clear;
bo_copiar:=False;
end;
in_in:=in_in+1;
end;
FreeAndNil(vt_Origem);
FreeAndNil(vt_Destino);
end;
Atenção: Só fui escrevendo o código, não testei (com certeza deve ter uns bugs, mas já aponta para uma possível solução).
Abraços,
Anderson:.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)