String Telefone
Moderador: Moderadores
String Telefone
AMIGOS:
Tenho um campo num arq dbf com nome telefone com o conteúdo ALFA:
"(66) 3544-6966"...
existem muitos clientes cadastrados com numeros e caract (, -, e ).
...pergunto:
Como proceder pra eliminar esses caracteres e deixar somente os numeros?
Preciso disso devido a um erro ao ler o arquivo pelo ACBR.
Obrigado!!!
Tenho um campo num arq dbf com nome telefone com o conteúdo ALFA:
"(66) 3544-6966"...
existem muitos clientes cadastrados com numeros e caract (, -, e ).
...pergunto:
Como proceder pra eliminar esses caracteres e deixar somente os numeros?
Preciso disso devido a um erro ao ler o arquivo pelo ACBR.
Obrigado!!!
Re: STRING TELEFONE
Coloque no seu codigo uma função para retirar o q vc não quer conforme exemplo abaixo:
cTelefone:= TiraSimbolos(DBF->CampoTel)
...
Vc ainda pode adaptar a função acima a sua necessidade inserindo ou removendo outros caracteres a sua necessidade.
Sucesso!!!
cTelefone:= TiraSimbolos(DBF->CampoTel)
...
Código: Selecionar todos
*******************************************************************************
Function TiraSimbolos(Arg1)
If Arg1=NIL
Alert("Sem Argumento pra executar a Funcao passar Funcao(ARGUMENTO)")
return
Endif
Arg1 := StrTran(Arg1, ".","")
Arg1 := StrTran(Arg1, "(","")
Arg1 := StrTran(Arg1, ")","")
Arg1 := StrTran(Arg1, ",","")
Arg1 := StrTran(Arg1, "-","")
Arg1 := StrTran(Arg1, "/","")
Return Arg1
Sucesso!!!
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Re: String Telefone
Olá!
Voce pode usar a função CharRem(), que tinha na CT.Lib e agora tem no Harbour também.
Abaixo segue, como opção adicional, um código genérico para extrair somente dígitos entre zero e nove de uma string.
Acho que você deveria ter campos separados para o DDD e Nr. Telefone, contendo apenas dígitos entre 0 e 9.
Voce pode usar a função CharRem(), que tinha na CT.Lib e agora tem no Harbour também.
Código: Selecionar todos
cString := CharRem( ".-/", cCliFone )Código: Selecionar todos
//------------------------------------------------------------------------------
Function StrDigits( cString )
// #Alexandre Santos - 27/01/06 - 12:08
// Extrai apenas os d¡gitos de uma string formatada, caso existam
Local cRet := "", n, l, c
If ! Empty( cString ) .and. ValType( cString ) == "C"
l := Len( ( cString := AllTrim( cString ) ) )
For n := 1 To l
c := Substr( cString, n, 1 )
If Asc( c ) >= 48 .and. Asc( c ) <= 57
cRet += c
Endif
Next
Endif
Return cRet
//------------------------------------------------------------------------------[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
-
anacatacombs
- Membro Master

- Mensagens: 472
- Registrado em: 12 Jul 2005 16:53
- Localização: Cianorte-Paraná
- Contato:
Re: String Telefone
Como você está passando a PICTURE do get?
Eu utilizo da seguinte forma: "@R (999)9999-9999"
Dessa forma o cliente não consegue - e não precisa - entrar com nenhum caracter, apesar do tipo do campo ser do tipo CARACTER.
Mas pra isso, você precisaria mudar bastante coisa no seu sistema.. não sei como está sua estrutura, nem se é viável a implementação.
No entando, fica só a título de conhecimento..
[]'s
Ana
Eu utilizo da seguinte forma: "@R (999)9999-9999"
Dessa forma o cliente não consegue - e não precisa - entrar com nenhum caracter, apesar do tipo do campo ser do tipo CARACTER.
Mas pra isso, você precisaria mudar bastante coisa no seu sistema.. não sei como está sua estrutura, nem se é viável a implementação.
No entando, fica só a título de conhecimento..
[]'s
Ana
Re: String Telefone
Um lembrete: há pessoas jurídicas que usam DDGs, que têm 10 dígitos, sem contar o código de área.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Re: String Telefone
Só faltou a colega explicar que com o @R os caracteres especiais não irão para o arquivo.
Nesse caso, irá para o seu arquivo somente um string com os números.
Para mostrar o valor em relatórios ou telas vc pode usar Picture ou Transform.
Nesse caso, irá para o seu arquivo somente um string com os números.
Para mostrar o valor em relatórios ou telas vc pode usar Picture ou Transform.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
{POG - Programação Orientada a Gambiarra}
Re: String Telefone
OK AMIGOS!!!
Obrigado pelo apoio que voces todos sempre me deram!!!
Ótima resposta e em tempo muito rápido!!!
Saudações
ERASMO
Obrigado pelo apoio que voces todos sempre me deram!!!
Ótima resposta e em tempo muito rápido!!!
Saudações
ERASMO
Re: String Telefone
Concordo. Até porque, se quiser no futuro fazer uma pesquisa por CEP para o endereço, nada mais natural que também se tenha o DDD nessa tabela (assim como CMB, código IBGE para NFe, etc). São informações interligadas. Eu faço isso. No que o usuário digita o CEP, todos esses dados já vêm automaticamente. Facilita muito.alxsts escreveu:Acho que você deveria ter campos separados para o DDD e Nr.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Re: String Telefone
Olá!
Estive olhando alguns números DDG e vi muitos com 11 dígitos. Neste caso não existe código de área. É um tratamento a mais para ser feito (a máscara).
Outra informação interessante para ser armazenada, é a operadora a que pertence a linha. Isso pode gerar alguma economia se uma chamada ao número for originada de um aparelho da mesma operadora.
Bem lembrado!Maligno escreveu:Um lembrete: há pessoas jurídicas que usam DDGs, que têm 10 dígitos, sem contar o código de área.
Estive olhando alguns números DDG e vi muitos com 11 dígitos. Neste caso não existe código de área. É um tratamento a mais para ser feito (a máscara).
Outra informação interessante para ser armazenada, é a operadora a que pertence a linha. Isso pode gerar alguma economia se uma chamada ao número for originada de um aparelho da mesma operadora.
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
Re: String Telefone
Seria interessante, mas com a possibilidade de troca de operadora, mantendo o mesmo número, se torna impraticável. Para celulares e fixos.alxsts escreveu:Outra informação interessante para ser armazenada, é a operadora a que pertence a linha.
PS: Nunca vi DDG de 11 dígitos. Tem certeza? Exemplos?
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Re: String Telefone
Olá!
Bem, considero DDG os números cujos prefixos são iguais a 0800.
Numa rápida olhada em alguns papéis, tenho:
- emergência Eletropaulo (companhia de eletricidade daqui de sp-sp): 0800 72 72 196 (www.eletropaulo.com.br)
- Cia. Souza Cruz (cigarros): 0800 7 23 22 21 (máscara impressa no maço, para facilitar a memorização)
- no mesmo maço, (número do Disque Saúde - pare de fumar): 0800 61 1997, com 10 dígitos
- Fone Fácil Bradesco: 0800 570 0022.
Quanto à outra questão, realmente tem o problema que você citou. Mas, a porcentagem de números portados é pequena. A conclusão da implantação da portabilidade numérica completou um ano recentemente em todos os 67 DDD's (durou de Set/08 a Fev/09 ). Lí na imprensa que os números ficaram bem abaixo do esperado.
Bom retorno ao fórum. Espero que tenha se divertido nas férias (se é que foram férias...).
Bem, considero DDG os números cujos prefixos são iguais a 0800.
Numa rápida olhada em alguns papéis, tenho:
- emergência Eletropaulo (companhia de eletricidade daqui de sp-sp): 0800 72 72 196 (www.eletropaulo.com.br)
- Cia. Souza Cruz (cigarros): 0800 7 23 22 21 (máscara impressa no maço, para facilitar a memorização)
- no mesmo maço, (número do Disque Saúde - pare de fumar): 0800 61 1997, com 10 dígitos
- Fone Fácil Bradesco: 0800 570 0022.
Quanto à outra questão, realmente tem o problema que você citou. Mas, a porcentagem de números portados é pequena. A conclusão da implantação da portabilidade numérica completou um ano recentemente em todos os 67 DDD's (durou de Set/08 a Fev/09 ). Lí na imprensa que os números ficaram bem abaixo do esperado.
Bom retorno ao fórum. Espero que tenha se divertido nas férias (se é que foram férias...).
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
Re: String Telefone
Bom, diante dos exemplos, estou convencido. Obrigado. Vou mudar meu domínio do FB para 11 dígitos. Melhor prevenir agora do que remediar depois que muitos já estiverem usando.
PS: Obrigado. Mas não foram férias. Nem sei o que é isso.
Aliás, não acabou. Sumirei de novo em um ou dois meses. :|
PS: Obrigado. Mas não foram férias. Nem sei o que é isso.
Aliás, não acabou. Sumirei de novo em um ou dois meses. :|
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Re: String Telefone
Eu é que agradeço.
Não sendo por motivo de doença, está tudo bem.
(Tá parecendo o Mister M ou David Coperfield que somem e aparecem...). Não demore senão ultrapasso você na quantidade de mensagens postadas...
Não sendo por motivo de doença, está tudo bem.
(Tá parecendo o Mister M ou David Coperfield que somem e aparecem...). Não demore senão ultrapasso você na quantidade de mensagens postadas...
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
String Telefone
Olá!
Precisa linkar a HbCt.Lib. Você está fazendo isso?
Por falar em números de telefone, a partir de 29-07-2012, os números de telefones celulares de São Paulo-SP e região metropolitana terão um dígito a mais (serão todos precedidos pelo dígito 9).
Precisa linkar a HbCt.Lib. Você está fazendo isso?
Por falar em números de telefone, a partir de 29-07-2012, os números de telefones celulares de São Paulo-SP e região metropolitana terão um dígito a mais (serão todos precedidos pelo dígito 9).
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)

