Código Delphi
// Função: Validar CPF ².
// Verifica se o CPF é Válido ou Não.
Código
function C_P_F( Dados: string ): boolean;
var
CPF: string;
Soma: integer;
Contar: integer;
Digito: integer;
begin try if Length( Dados ) > 11 then
Dados := Copy( Dados, 1, 3 ) + Copy( Dados, 5, 3 ) + Copy( Dados, 9, 3 ) + Copy( Dados, 13, 2 );
if Length( Trim( Dados ) ) = 0 then
begin
Result := True;
exit; end;
CPF := copy( Dados, 1, 9 );
Soma := 0;
for Contar := 1 to 9 do
Soma := Soma + StrToInt( copy( CPF, Contar, 1 ) ) * ( 11 - Contar );
Digito := 11 - Soma mod 11;
if Digito in [ 10,11 ] then
CPF:= CPF + '0'
else
CPF := CPF + IntToStr( Digito );
Soma := 0;
for Contar := 1 to 10 do
Soma := Soma + StrToInt( copy( CPF, Contar, 1 ) ) * ( 12 - Contar );
Digito := 11 - Soma mod 11;
if Digito in [ 10, 11 ] then
CPF := CPF + '0'
else
CPF := CPF + IntToStr( Digito );
if Dados <> CPF then
Result := false
else
Result := true;
except on econverterror do
Result := false; end; end;
var
CPF: string;
Soma: integer;
Contar: integer;
Digito: integer;
begin try if Length( Dados ) > 11 then
Dados := Copy( Dados, 1, 3 ) + Copy( Dados, 5, 3 ) + Copy( Dados, 9, 3 ) + Copy( Dados, 13, 2 );
if Length( Trim( Dados ) ) = 0 then
begin
Result := True;
exit; end;
CPF := copy( Dados, 1, 9 );
Soma := 0;
for Contar := 1 to 9 do
Soma := Soma + StrToInt( copy( CPF, Contar, 1 ) ) * ( 11 - Contar );
Digito := 11 - Soma mod 11;
if Digito in [ 10,11 ] then
CPF:= CPF + '0'
else
CPF := CPF + IntToStr( Digito );
Soma := 0;
for Contar := 1 to 10 do
Soma := Soma + StrToInt( copy( CPF, Contar, 1 ) ) * ( 12 - Contar );
Digito := 11 - Soma mod 11;
if Digito in [ 10, 11 ] then
CPF := CPF + '0'
else
CPF := CPF + IntToStr( Digito );
if Dados <> CPF then
Result := false
else
Result := true;
except on econverterror do
Result := false; end; end;