Localizar String em arquivo TXT e copiar texto após texto

03/03/2016

6

DPessoal, boa tarde.

Estou com uma dúvida e gostaria muito da ajuda de vocês.

Sou programador razoavelmente novo e minha dúvida é a seguinte.

No site da Receita Federal (Link a seguir: http://www.receita.fazenda.gov.br/PessoaJuridica/CNPJ/cnpjreva/Cnpjreva_Solicitacao.asp) é possível ver o cartão CNPJ de uma empresa com todos os dados da empresa, por exemplo:

1) Nome da empresa
2) CNPJ
3) Endereço
4) Telefone
Etc...

Gostaria de criar um programa em delphi capaz de ler estas informações do arquivo TXT gerado a partir do cartão CNPJ e obter os dados.

O padrão do cartão CNPJ é:




Comprovante de Inscrição e de Situação Cadastral




Contribuinte,

Confira os dados de Identificação da Pessoa Jurídica e, se houver qualquer divergência, providencie junto à RFB a sua atualização cadastral.




Brasão

REPÚBLICA FEDERATIVA DO BRASIL





CADASTRO NACIONAL DA PESSOA JURÍDICA





NÚMERO DE INSCRIÇÃO
01.234.567/0001-89
MATRIZ

COMPROVANTE DE INSCRIÇÃO E DE SITUAÇÃO CADASTRAL
DATA DE ABERTURA
01/01/2000




NOME EMPRESARIAL
Nome Social da Empresa




TÍTULO DO ESTABELECIMENTO (NOME DE FANTASIA)
********




CÓDIGO E DESCRIÇÃO DA ATIVIDADE ECONÔMICA PRINCIPAL
62.09-1-00 - Suporte técnico, manutenção e outros serviços em tecnologia da informação




CÓDIGO E DESCRIÇÃO DAS ATIVIDADES ECONÔMICAS SECUNDÁRIAS
62.04-0-00 - Consultoria em tecnologia da informação
62.03-1-00 - Desenvolvimento e licenciamento de programas de computador não-customizáveis
62.02-3-00 - Desenvolvimento e licenciamento de programas de computador customizáveis
70.20-4-00 - Atividades de consultoria em gestão empresarial, exceto consultoria técnica específica
69.20-6-02 - Atividades de consultoria e auditoria contábil e tributária
62.01-5-01 - Desenvolvimento de programas de computador sob encomenda




CÓDIGO E DESCRIÇÃO DA NATUREZA JURÍDICA
206-2 - SOCIEDADE EMPRESARIA LIMITADA




LOGRADOURO
"Endereço da Empresa"
NÚMERO
"Numero do Endereço"
COMPLEMENTO
"Complemento do Endereço"




CEP
88.888-000
BAIRRO/DISTRITO
"Bairro Do Endereço"
MUNICÍPIO
CURITIBA
UF
PR




ENDEREÇO ELETRÔNICO
"Endereço de E-mail do Cadastro do CNPJ"
TELEFONE
(41) 3333-3333




ENTE FEDERATIVO RESPONSÁVEL (EFR)
*****




SITUAÇÃO CADASTRAL
ATIVA
DATA DA SITUAÇÃO CADASTRAL
06/12/2006




MOTIVO DE SITUAÇÃO CADASTRAL





SITUAÇÃO ESPECIAL
********
DATA DA SITUAÇÃO ESPECIAL
********




Aprovado pela Instrução Normativa RFB nº 1.470, de 30 de maio de 2014.


Emitido no dia 03/03/2016 às 17:26:02 (data e hora de Brasília).

Página: 1/1














A RFB agradece a sua visita. Para informações sobre política de privacidade e uso, clique aqui.
Atualize sua página


------------

Vou ver que tem um campo chamado NÚMERO DE INSCRIÇÃO em uma linha e logo abaixo o dado que é o CNPJ, por exemplo: 01.234.567/0001-89

Então, quero fazer o seguinte...através de um opendialog, identificar o arquivo texto com os dados do cartão CNPJ, clicar em outro botão e capturar o número do CNPJ, da Razão Social, Endereço, etc.

Poderiam me ajudar?
Responder

Post mais votado

04/03/2016

Coloque um Edit, um OpenDialog e dois botões.

No evento OnClick botão para carregar o caminho do cartão:

 if OpenDialog1.Execute then
    Edit1.Text := OpenDialog1.FileName;


No botão para extrair as informações:

var
  i: Integer;
  Lista: TStringList;
begin
  Try
    Lista := TStringList.Create;

    if FileExists(Edit1.Text) then
    begin
      Lista.LoadFromFile(Edit1.Text);

      for i := 0 to Lista.Count - 1 do
      begin
        if pos('NÚMERO DE INSCRIÇÃO', Lista[i]) > 0 then
          ShowMessage('CNPJ: ' + Lista[i + 1]);

        if pos('NOME EMPRESARIAL', Lista[i]) > 0 then
          ShowMessage('Razão Social: ' + Lista[i + 1]);

        if pos('LOGRADOURO', Lista[i]) > 0 then
          ShowMessage('Endereço: ' + Lista[i + 1]);
      end;
    end;
  Finally
    Lista.Free;
  End;
end;
Responder

Mais Posts

16/03/2016

Ferreira

Coloque um Edit, um OpenDialog e dois botões.

No evento OnClick botão para carregar o caminho do cartão:

 if OpenDialog1.Execute then
    Edit1.Text := OpenDialog1.FileName;


No botão para extrair as informações:

var
  i: Integer;
  Lista: TStringList;
begin
  Try
    Lista := TStringList.Create;

    if FileExists(Edit1.Text) then
    begin
      Lista.LoadFromFile(Edit1.Text);

      for i := 0 to Lista.Count - 1 do
      begin
        if pos('NÚMERO DE INSCRIÇÃO', Lista[i]) > 0 then
          ShowMessage('CNPJ: ' + Lista[i + 1]);

        if pos('NOME EMPRESARIAL', Lista[i]) > 0 then
          ShowMessage('Razão Social: ' + Lista[i + 1]);

        if pos('LOGRADOURO', Lista[i]) > 0 then
          ShowMessage('Endereço: ' + Lista[i + 1]);
      end;
    end;
  Finally
    Lista.Free;
  End;
end;


Natanael,

EStá faltando o restante dos campos, não?
Responder

16/03/2016

Marco Antônio

Luth, o ''Natanael'' deu um exemplo. O resto é o braçal do interessado em terminar a implementação. É só um norte para o ''Fábio'' inicia o projeto agora é com ele.

Abc
Responder
Exatamente! Para utilizar novos campos, basta incluí-los dentro do For (Loop) com a sintaxe:

if pos('NOVO CAMPO', Lista[i]) > 0 then
 ShowMessage('Novo campo: ' + Lista[i + 1]);
Responder

16/03/2016

Fábio Sela

RESOLVIDO.

Obrigado a todos pela ajuda.
Responder