como capturar todos os cpf de um texto em um memo?
boa noite pessoal!
gostaria de saber como capturar todos os cpfs de um texto, nesse texto te muita coisa, queria extrair somente os cpfs, e possível? como se faz?
desde já agradeço,
Adriano Fonseca.
gostaria de saber como capturar todos os cpfs de um texto, nesse texto te muita coisa, queria extrair somente os cpfs, e possível? como se faz?
desde já agradeço,
Adriano Fonseca.
Adriano Pereira
Curtidas 0
Respostas
Deivison Melo
21/09/2012
Poderia fazer isso com a utilização dos comandos: POS e Copy...
Onde poderia fazer da seguinte forma:
A função Copy(str : string, i, j : integer) : string copia caracteres de uma dada string.
onde :
str é a string de onde se deseja copiar os caracteres.
i é posição de onde vai começar a cópia.
j é quantidade de caracteres a copiar.
exemplo :
s : string;
s := Copy('Clube delphi', 3, 7);
após a execução dessa linha a variável s conteria : 'ube del'
já a função Pos(str, subStr : string) : integer retorna a posição inicial de uma determinada sequência de caracteres dentro de uma string.
onde :
str é a string de onde se deseja verificar.
subStr é a sequência de caracteres que se deseja encontrar dentro de str.
exemplo:
i : integer;
i := Pos('Clube delphi', 'delphi');
após a execução dessa linha i receberia 7, pois a substring 'delphi' tem seu primeiro caracter na posição 7.
caso subStr não for encontrada em str, a função str retorna -1.
obs.: a posição inicial em tipos de dados strings é 1.
Espero ter ajudado!!!
Onde poderia fazer da seguinte forma:
A função Copy(str : string, i, j : integer) : string copia caracteres de uma dada string.
onde :
str é a string de onde se deseja copiar os caracteres.
i é posição de onde vai começar a cópia.
j é quantidade de caracteres a copiar.
exemplo :
s : string;
s := Copy('Clube delphi', 3, 7);
após a execução dessa linha a variável s conteria : 'ube del'
já a função Pos(str, subStr : string) : integer retorna a posição inicial de uma determinada sequência de caracteres dentro de uma string.
onde :
str é a string de onde se deseja verificar.
subStr é a sequência de caracteres que se deseja encontrar dentro de str.
exemplo:
i : integer;
i := Pos('Clube delphi', 'delphi');
após a execução dessa linha i receberia 7, pois a substring 'delphi' tem seu primeiro caracter na posição 7.
caso subStr não for encontrada em str, a função str retorna -1.
obs.: a posição inicial em tipos de dados strings é 1.
Espero ter ajudado!!!
GOSTEI 0
Singular Ti
21/09/2012
Isso ae Deivison, ótima explicação.. Ficou bem claro eu tb faria dessa forma!!
Fica ae a dica!!!
Fica ae a dica!!!
GOSTEI 0
Marco Salles
21/09/2012
Uma outra forma de fazer , a que eu prefiro é utilizar Expressões Regulares nativo no delphi se não me
engando a partir do DelphiXe
qualquer coisa eu posto o código
[]sds
engando a partir do DelphiXe
qualquer coisa eu posto o código
[]sds
GOSTEI 0
Jose Guedes
21/09/2012
Olá! Corroborando o que o Marcos Salles disse o ideal para este tipo de problema é a Expressão Regular.
Acredito que a solução já tenha sido dada porém deixo aqui minha sugestão de resolução.
Obviamente é um exemplo bobo sem considerar alguns problemas do seu cenário.
[url]http://eugostododelphi.blogspot.com.br/p/expressao-regular.html[/url]
É isto,
Acredito que a solução já tenha sido dada porém deixo aqui minha sugestão de resolução.
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils, System.RegularExpressions;
const
C_FRASE_EXEMPLO = 'Fulano de tal com o CPF 999.999.358-32 e Senhor Cicrano com o CPF 000.000.000-89';
C_REGEX = '(\d\.?)-\d';
var
_cpf : TMatch;
begin
_cpf := TRegEx.Match(C_FRASE_EXEMPLO,C_REGEX,[]);
while (_cpf.Success) do
begin
Writeln('CPF encontrado: ' + _cpf.Value);
_cpf := _cpf.NextMatch;
end;
Readln;
end.
Obviamente é um exemplo bobo sem considerar alguns problemas do seu cenário.
[url]http://eugostododelphi.blogspot.com.br/p/expressao-regular.html[/url]
É isto,
GOSTEI 0
Marco Salles
21/09/2012
Como é bom o amigo Mario comparecer por aqui e nos trazer esta maravilha de solução limpa com o uso de Expressão Regular
apareça mais vezes Mario e nos presentei com esta facilidade que vc tem em utilizar esta biblioteca
[]sds
apareça mais vezes Mario e nos presentei com esta facilidade que vc tem em utilizar esta biblioteca
[]sds
GOSTEI 0