Rotina para elininar caracteres especiais

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Laudelino Scarmagnani
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Fev 2007 10:54

Rotina para elininar caracteres especiais

Mensagem por Laudelino Scarmagnani »

Pessoal, boa noite!
Preciso desenvolver uma rotina para elininar caracteres especiais. A não ser que o ACBrNFeMonitor faça isso ao gerar o arquivo .xml. Pelo que sei, não o faz!
Então, preciso de um comando que me retorne o tamanho da string que será passada como parâmetro, e retorná-la sem os caracteres especiais e substituindo os possíveis (ç po c, Ç por C, á por a, e assim por diante) e eliminar os seguite caracteres : ´, `, ¨, æ, Æ, Ø, ƒ, ½, ¼, ¡, «, », ¦, ©, ¥, ¤, ð, Ð, ß, µ, þ, Þ, ±, ¾, ¶, §, ¸, °, ·, ¹, ², ³.
Se alguém já tem a rotina e puder passar, agradeço.
Laudelino
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Busca de Unidades no Computador

Mensagem por sygecom »

Eu uso essa com ACBERNFEMONITOR:

Ex:
vCIDADE:="CAÇAPAVA DO SUL"
vCIDADE=TiraAcento(Upper(ALLTRIM(vCIDADE)))

Código: Selecionar todos

**************************
FUNCTION TiraAcento(cText)
**************************
cText := StrTran(cText,"Ã","A")
cText := StrTran(cText,"Â","A")
cText := StrTran(cText,"Á","A")
cText := StrTran(cText,"Ä","A")
cText := StrTran(cText,"À","A")
cText := StrTran(cText,"ã","a")
cText := StrTran(cText,"â","a")
cText := StrTran(cText,"á","a")
cText := StrTran(cText,"ä","a")
cText := StrTran(cText,"à","a")

cText := StrTran(cText,"É","E")
cText := StrTran(cText,"Ê","E")
cText := StrTran(cText,"Ë","E")
cText := StrTran(cText,"È","E")
cText := StrTran(cText,"é","e")
cText := StrTran(cText,"ê","e")
cText := StrTran(cText,"ë","e")
cText := StrTran(cText,"è","e")

cText := StrTran(cText,"Í","I")
cText := StrTran(cText,"Î","I")
cText := StrTran(cText,"Ï","I")
cText := StrTran(cText,"Ì","I")
cText := StrTran(cText,"í","i")
cText := StrTran(cText,"î","i")
cText := StrTran(cText,"ï","i")
cText := StrTran(cText,"ì","i")

cText := StrTran(cText,"Ó","O")
cText := StrTran(cText,"Õ","O")
cText := StrTran(cText,"Ô","O")
cText := StrTran(cText,"ó","O")
cText := StrTran(cText,"Ö","O")
cText := StrTran(cText,"Ò","O")
cText := StrTran(cText,"õ","o")
cText := StrTran(cText,"ô","o")
cText := StrTran(cText,"ó","o")
cText := StrTran(cText,"ö","o")
cText := StrTran(cText,"ò","o")

cText := StrTran(cText,"Û","U")
cText := StrTran(cText,"Ú","U")
cText := StrTran(cText,"Ü","U")
cText := StrTran(cText,"Ù","U")
cText := StrTran(cText,"û","u")
cText := StrTran(cText,"ú","u")
cText := StrTran(cText,"ü","u")
cText := StrTran(cText,"ù","u")

cText := StrTran(cText,"Ç","C")
cText := StrTran(cText,"ç","c")
RETURN(cText)
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Laudelino Scarmagnani
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Fev 2007 10:54

Re: Busca de Unidades no Computador

Mensagem por Laudelino Scarmagnani »

Tenho algo a mais a fazer? inclui a função e o seginte comando:
WNOME=TiraAcento(Upper(ALLTRIM(WNOME)))
Não alterou uns caracteres e outros por um caractere que não tem nada a ver.
Laudelino.
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: Busca de Unidades no Computador

Mensagem por alaminojunior »

Talvez precise acertar a configuração da página de códigos utilizada.

Agora, sem querer ser chato....o tópico desvirtuou-se (inclusive com participação minha). Começou com a questão do backup, passou pela questão do e-mail e está discutindo manipulação de string´s.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Rotina para elininar caracteres especiais

Mensagem por sygecom »

Separei em um novo Tópico:

Laudelino,
De uma olhada no post abaixo, talvez resolva:
viewtopic.php?f=43&t=4374
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder