Redes sociais

[Quick Tips] Utilizando o FormatMaskText

22 junho 2021 -

Fala Pessoal, tudo bem com vocês?

Hoje vim aqui trazer uma dica rápida sobre a utilização da função FormatMaskText. Ela é muito útil quando queremos formatar alguma informação para ser apresentada na tela, por exemplo. Um caso muito comum é a formatação de CPFs e CNPJs. Uma maneira simples, que não está errada mas é de difícil leitura é usando concatenação de strings com o Copy, por exemplo:
procedure ShowFormatedCPF(const Value: string);
var
  lResult: string;
begin
  lResult :=
    Copy(Value, 1, 3) + '.' +
    Copy(Value, 4, 3) + '.' +
    Copy(Value, 7, 3) + '-' +
    Copy(Value, 10,  2);

  ShowMessage(lResult);
end;
Ao executarmos o programa, ele irá nos apresentar o valor formatado, veja:


Ao utilizarmos o FormatMaskText teremos um código mais limpos e de simples leitura. Veja:
uses
  System.MaskUtils;
procedure ShowFormatedCPF(const Value: string);
var
  lResult: string;
begin
  lResult := FormatMaskText('!99.999.999-00;0;_', Value);
  ShowMessage(lResult);
end;
O que o FormatMaskText faz, nada mais é do que aplicar a máscara definida no primeiro parâmetro à string informada no segundo e retornar esse valor formatado.

Para a máscara, a função aceita alguns caracteres especiais. No nosso exemplo ('!99.999.999-00;0;_') nós utilizamos os seguintes:

! - Quando este caractere aparece na máscara, ele define que os caracteres opcionais serão representados por espaço em branco no início da string, caso contrário será ao final.
9 - Este caractere permite a inclusão de valores numéricos em sua posição, mas não o torna obrigatório.
0 - Este caractere define que será necessário a inclusão de um valor numérico em sua posição.
; - O ponto e vírgula é usado para separar os três campos da máscara.
_ - O underline automaticamente inclui espaços no resultado.

Para ver a lista completa você pode acessar a documentação da Embarcadero que explica sobre esta função.



Forte abraço nos vemos no próximo post! ;)

Postar um comentário