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

03/03/2016

0

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?
Fábio Sela

Fábio Sela

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;

Natanael Ferreira

Natanael Ferreira
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

16/03/2016

Natanael Ferreira

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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar