terça-feira, 22 de setembro de 2009

Formatação automática de cpf e cnpj

{São 3 funções, vc usa diretamente a função FormataCPF_CNPJ, passando para ela o número que deseja formatar e ela te retorna o número formatado com pontos, barra, traço e tudo o mais.
Bem, deixa de blá, blá, blá e vamos às ditas cujas:}

Function FormataCNPJ(Numero: String): String;
var
tmp,resultado: String;
indx, indx1: integer;
begin
if Length(Numero) < 12 Then
begin
result := '';
exit;
end;

for indx := 1 to Length(Numero) do
begin
if Numero[indx] in ['0'..'9'] Then
resultado := resultado + Numero[indx];
end;
if Length(Resultado) < 14 Then
resultado := StringOfChar('0', 14 - Length(Resultado)) + resultado;
tmp := Copy(resultado,1,2) + '.';
tmp := tmp + Copy(resultado,3,3) + '.';
tmp := tmp + Copy(resultado,6,3) + '/';
tmp := tmp + Copy(resultado,9,4) + '-' + Copy(resultado,13,2);
Result := tmp;
end;


Function FormataCPF(Numero: String): String;
var
tmp,resultado: String;
indx, indx1: integer;
begin
if Length(Numero) < 10 Then
begin
result := '';
exit;
end;

for indx := 1 to Length(Numero) do
begin
if Numero[indx] in ['0'..'9'] Then
resultado := resultado + Numero[indx];
end;
if Length(Resultado) < 11 Then
resultado := StringOfChar('0', 11 - Length(Resultado)) + resultado;
tmp := Copy(resultado,1,3) + '.';
tmp := tmp + Copy(resultado,4,3) + '.';
tmp := tmp + Copy(resultado,7,3) + '-';
tmp := tmp + Copy(resultado,10,2);
Result := tmp;
end;

Function FormataCNPJ_CPF(Numero: String): String;
var
indx, tamanho: integer;
resultado: String;
begin
for indx := 1 to Length(Numero) do
begin
if Numero[indx] in ['0'..'9'] Then
resultado := resultado + Numero[indx];
end;

if (Length(resultado) > 11) Then
resultado := FormataCNPJ(resultado)
else
resultado := FormataCPF(resultado);
result := resultado;
end;

Nenhum comentário:

Postar um comentário