Autor Tópico: Dica WD: Como remover os acentos e caracteres especiais  (Lida 1461 vezes)

JacquesBica

  • Full Member
  • ***
  • Mensagens: 197
  • Karma: +0/-0
  • Boas cercas fazem bons vizinhos
Dica WD: Como remover os acentos e caracteres especiais
« Online: Janeiro 20, 2012, 08:02:20 pm »
Dando seguimento na dica anterior, temos por norma remover os acentos e caracteres especiais antes de gravar um registro. Para isto usamos as rotinas abaixo:

1) Esta função abaixo remove os acentos através da função nativa do WD (NoAccent) e faz uma varredura na String passada por parâmetro e remove outros caracteres indesejados:

PROCEDURE JBAsc(pCampo)

sCampo is string = NoAccent(pCampo)
nTamanho is int = Length(pCampo)

sNovoCampo is string
sCaracter is string
nValor is int

IF (nTamanho > 1) THEN
   FOR i = 1 TO nTamanho
      sCaracter = (Middle(sCampo,i,1))
      nValor = Asc(sCaracter)

      IF (nValor >= 32 AND nValor <= 93) OR (nValor = 95 OR nValor = 13 OR nValor = 10) AND (nValor <> 39) THEN
         sNovoCampo += sCaracter
      END      
   END   
ELSE
   sNovoCampo = pCampo
END

RESULT(sNovoCampo)

2) Esta procedure faz uma varredura em todos os campos contidos no registro passado por parâmetro:

PROCEDURE JBAscRecord(pGR_Registro)

sNomeControle is string
FOR i = 1 _TO_ pGR_Registro..Occurrence
   sNomeControle = EnumControl(pGR_Registro,i)
   
   IF {sNomeControle, indControl}..InputType = typInputText THEN
       {sNomeControle, indControl}..Value = JBAsc({sNomeControle, indControl})      
   END      
END   
Jacques Bica
www.jbsistemas.com.br
São Sebastião do Caí/RS

Skype Jacques Leonel Bica
jacquesbica@gmail.com
http://br.linkedin.com/in/jacquesbica/
https://plus.google.com/+JacquesBica

Com Windev devo pensar simples, se estiver complicado é porque estou no caminho errado.

zerloti

  • Jr. Member
  • **
  • Mensagens: 78
  • Karma: +0/-0
Re:Dica WD: Como remover os acentos e caracteres especiais
« Responder #1 Online: Janeiro 21, 2012, 08:52:36 am »
Valeu JacquesBica !!!
Grato por mais esta dica ...