Integer não aceita número grande e não pode aparecer pontos e letras!

Delphi

30/04/2018

Estou fazendo a seguinte função comentada para pegar o resultado de uma operação matemática( Com o número do CNPJ ), preciso pegar esse valor e somar pelo número da matrícula, o resultado não pode conter letras ou vírgulas, e pelo fato de o número ser muito grande o Integer não aceita, e o float o número aparece com letras e vírgulas, oque não pode acontecer... Segue print mostrando código....

Print: http://prntscr.com/jc1k7y ( A função que estou utilizando está comentada! );
Gilberto Moura

Gilberto Moura

Curtidas 0

Respostas

Venancio Alves

Venancio Alves

30/04/2018

Olá Gil!

Já tentou utilizar o tipo Long?
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

30/04/2018

você pode criar uma função que retorne apenas números:

function SoNumeros( str: string );
var retorno : string;
    i: integer;
begin
  retorno := '';
  For i := 1 to Lenght( str ) do
    if (str[i] in ['0'..'9']) then retorno := concat(retorno, str[i]);
  result := retorno;
end;


depois, pode utilizá-la no seu código (podendo ainda reduzi-lo):
x2 := SoNumeros( x2 ); // somente numeros
x4 := '';
For i := 1 to Lenght( x2 ) do
  x4 := concat(x4, IntToStr( StrToInt( x2[i] ) * Math.IfThen(i < 10, i, i - 10) ) )

nsoma := StrToInt64( x4 ) + StrToInt64( trim( matricula.Text ) );
x4 := IntToStr( nsoma )

lblSerial.Caption := x4
GOSTEI 0
POSTAR