Skip to content
Daniel de Morais Compartilhe. Aprenda. Evolua.
Infocotidiano Infocotidiano

Meu dia-a-dia tecnológico

Infocotidiano
Infocotidiano

Meu dia-a-dia tecnológico

Função que formata o número de telefone

Daniel Morais, 2020

Algum tempo atrás precisava de uma função para um sistema de delivery, onde você passa como parâmetro o numero de telefone e a função verifica se é de celular ou fixo, se existe DDD ou não, verifica se existe o 9 digito e retorna o numero formatado.

Segue abaixo:

function Tformata_tel(cTexto: string): string;
// Variavel cDDDPadrao é um parametro do meu sistema.
// assim se o operador nao digitar o DDD para agilizar o pedido se nao tiver bina, ele completa com o DDDPadrao automaticamente
begin
   if Length(Trim(ctexto)) = 0 then
      begin
       Result := '';
      end
   else if Length( SoNumero(cTexto) ) = 8 then  // fixo
      begin
         if (strtoint(copy(SoNumero(cTexto),0,1)) >= 6) and (strtoint(copy(SoNumero(cTexto),0,1)) <= 9) then //é um celular
            Result := '('+cDDDPadrao+')'+'9'+copy(SoNumero(cTexto),0,4)+'-'+copy(SoNumero(cTexto),5,4)
         else
            Result := '('+cDDDPadrao+')'+copy(SoNumero(cTexto),0,4)+'-'+copy(SoNumero(cTexto),5,4)
      end
   else if Length( SoNumero(cTexto) ) = 9 then //celular
      Result := '('+cDDDPadrao+')'+copy(SoNumero(cTexto),0,5)+'-'+copy(SoNumero(cTexto),6,4)
   else if Length( SoNumero(cTexto) ) = 10 then  // fixo com ddd
      begin
        if (StrtoInt(copy(SoNumero(cTexto),3,1)) >= 6)  and (StrtoInt(copy(SoNumero(cTexto),3,1)) <= 9) then //celular
           Result := '('+copy(SoNumero(cTexto),0,2)+')'+'9'+copy(SoNumero(cTexto),3,4)+'-'+copy(SoNumero(cTexto),7,4)
        else
           Result := '('+copy(SoNumero(cTexto),0,2)+')'+copy(SoNumero(cTexto),3,4)+'-'+copy(SoNumero(cTexto),7,4)
      end
   else if Length( SoNumero(cTexto) ) = 11 then  //celular com ddd
      Result := '('+copy(SoNumero(cTexto),0,2)+')'+copy(SoNumero(cTexto),3,5)+'-'+copy(SoNumero(cTexto),8,4)

end;

Observe que dentro dela, existe a chamada de outra função onde verifico retorna apenas os números da string “SoNumero”:

function SoNumero(fField: String): String;
var
  I : Byte;
begin
   Result := '';
   for I := 1 To Length(fField) do
       if fField [I] In ['0'..'9'] Then
            Result := Result + fField [I];

end;

Fonte: https://www.teleco.com.br/num.asp

Dicas Funções e Procedimentos formatar telefones

Navegação de Post

Previous post
Next post

Deixe um comentário Cancelar resposta

Você precisa fazer o login para publicar um comentário.

Pesquisa

ACBr acbr lazarus ACBRposprinter antivirus antivirus gratuito apagar atualizar AVG AVG FREE banco de dados chave estrangeira consulta create table criar tabela crosscompile cross compile cross compiling dbgrid delphi Dia do ACBr filtro flutter foreign key horse impressora de cupom instalar join lazarus Lazarus Streaming Day linux MariaDB mysql parametros pesquisa incremental pesquisa multipla PostGreSQL primary key Python query RDW rxdbgrid sql server update views where

  • Python para Programador Pascal – Parte #1
  • Monitora – Desenhe e monitore sua rede doméstica ou escritório. Escrito em Lazarus/FPC.
  • Crie seu projeto Lazarus/fpc a partir das tabelas do seu banco de dados.
  • Instalando o Node.js e Gerenciando Dependências no Windows
  • Introdução a Classes em Python, cliente
  • Dica Python: Como separar Listas de Forma Elegante
  • Python #01 – Instalando Python e Studio Code no Linux
  • Entendendo Operadores de Comparação Python
  • Entendendo os Operadores Aritméticos em Python
  •  IntraWeb no Lazarus – Primeiros Passos
  • Utilizando Interpose Class no Lazarus
  • Antivírus Gratuitos DEZ2024
  • Operadores em Python
©2026 Infocotidiano | WordPress Theme by SuperbThemes