*Fonte Arquivo de Códigos
Em algumas situações precisamos converter strings em valores numéricos do tipo inteiro. Isso acontece quando recebemos valores de caixas de texto e precisamos usuá-los em cálculos.
Vamos começar com a função StrToInt() da unit SysUtils. Esta função recebe uma string representando um valor inteiro válido e retorna um valor inteiro. Veja o exemplo:
procedure TForm1.Button1Click(Sender: TObject);
var
valor1, valor2, soma: Integer;
begin
// vamos receber as strings dos TEdits e converter
// seus valores para inteiros
valor1 := StrToInt(Edit1.Text);
valor2 := StrToInt(Edit2.Text);
// vamos obter a soma dos dois valores
soma := valor1 + valor2;
// vamos exibir o resultado. Note o uso de IntToStr() para
// converter o valor inteiro em string
ShowMessage('A soma é: ' + IntToStr(soma));
end;
Note que, se a string sendo convertida possuir um valor inteiro inválido, uma exceção do tipo EConvertError será lançada. Podemos evitar isso usando a função TryStrToInt(). Esta função recebe dois argumentos: a string a ser convertida e a variável do tipo Integer que receberá o valor. O resultado será true se a conversão for feita com sucesso e false em caso contrário. Veja:
procedure TForm1.Button1Click(Sender: TObject);
var
valor: Integer;
begin
// vamos tentar converter o valor da caixa de texto
// em um inteiro
if TryStrToInt(Edit1.Text, valor) then
ShowMessage('Conversão efetuada com sucesso.')
else
ShowMessage('Erro na conversão');
end;
Há ainda uma terceira possibilidade: usar a função StrToIntDef(). Esta função funciona exatamente da mesma forma que StrToInt(), exceto que agora, se houver um erro de conversão, um valor inteiro padrão será retornado. Veja:
procedure TForm1.Button1Click(Sender: TObject);
var
valor: Integer;
begin
// vamos converter o valor da caixa de texto
// em um inteiro. Se a conversão não puder ser feita
// o valor 10 será atribuído à varial valor
valor := StrToIntDef(Edit1.Text, 10);
// vamos exibir o resultado
ShowMessage(IntToStr(valor));
end;
Caso você precise trabalhar com inteiros de 64 bits, poderá usar as funções StrToInt64(), StrToInt64Def() e TryStrToInt64().
Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.
Nenhum comentário:
Postar um comentário