PEX - Remove caracteres e mantem somente números
Abaixo veremos comandos de evento PEX para extrair de qualquer string somente os números, ou seja, poderá atender a diversos casos como exemplo:
- Remoção de caracteres especiais de telefones, mantendo somente os números.
- Remoção de caracteres especiais de CPF/CPNJ, mantendo somente os números.
- Seleção do numero do endereço, em caso de campos onde o número é digitado junto ao nome da rua.
- Tratamento para CEP, Placas e outros mantendo somente os números.
Procedure EXEMPLO(const aiAtividadeAtual : Integer; aoFormularios : TJSONObject; const aoVariaveis : TVariaveisEventoFormulario; const aoMensagem : TJSONObject);
var
Ind : Integer;
Result : String;
begin
Result := '';
FOR Ind := 1 to Length('TESTE123teste - evento 1 - PeX') do
begin
if TSTR.of_TemNumero(Copy('TESTE123teste - evento 1 - PeX',Ind,1)) then
begin
Result := Result + Copy('TESTE123teste - evento 1 - PeX', Ind, 1);
end;
end;
end;
- String = 'TESTE123teste - evento 1 - PeX'
- Result = '1231'
Explicação do código:
- Vamos utilizar apenas 2 variáveis, uma para índice do tipo inteiro e outra para o nosso resultado to tipo String.
- No primeiro momento, limpamos por garantia a variável Result para começar a receber os dados, após iniciamos nosso FOR estabelecendo que o índice(Ind) começará de 1 ou seja, do primeiro caractere, e percorrerá até o Length da nossa string ou seja, até seu comprimento total ( no nosso exemplo = 13).
- A cada "ciclo" do FOR ele irá verificar utilizando o comando COPY se aquela posição do índice(Ind) especifica é um numeral ou não:
- COPY('String', Posição, Numero Caracteres) - Ou seja, o COPY analisará o corpo da nossa String a partir da posição especificada, e percorrerá o numero de caracteres informado.
- Nos casos que essa condição for verdadeira, ou seja, o caracter for numérico, o mesmo será adicionado ao Result, caso contrario não, e o índice(ind) passará para a próxima posição.
Lembre-se de buscar sempre entender o código, assim podendo trata-los em diversas situações e variações, por exemplo, sua string pode vir de variáveis do processo, variáveis PEX, variáveis do sistema, consultas SQL, formulários e outros, assim como a utilização da resposta obtida no Result poderá ser aplicada em qualquer tipo de destino.