Página 1 de 1

Acentos / exportacao

Enviado: 15 Ago 2009 22:48
por cleudson
olá sempre que preciso exportar base de dados dbf para sistemas para sistemas graficos os acentos do clipper ficam com caracteres extranhos no novo banco de dados, sendo assim andei procurando uma funcao para tirar todos os acentos da base dbf encontrei um muito bom fiz uma pequena modificacao para tirar todos os acentos de todos os campos da tabela que sejam do tipo char. Estou enviando pra voces para quem necessitar usar.

Código: Selecionar todos

//================================================================//
// Funcao........: Remocao de acentuacao (REMACENT)
// Programador...: Marcos Antonio Gambeta
// Atualizacao...: Leomar Cleudson Costa
//                 Implementado para remover os acentos de toda tabela
//                 com campos tipo Char e pedir o nome da tabela
//                 15/08/2009 (vc pode incluir novos caracteres na funcao.          
// Contato.......: dicasdeprogramacao@yahoo.com.br
// Website.......: http://dicasprog.codigolivre.org.br
//================================================================//
// Linguagem.....: CA-Clipper 5.2/5.3
// Bibliotecas...:
// Plataforma....: DOS/Windows
//================================================================//
clear
ttab:=space(8)

@ 10,10 say "Tabela.:"
@ 10,19 get ttab pict '@!'
read
use (ttab) alias tab new
DBgoTop()

A=fcount()
for X=1 to A
    if type(field(X))="C"
       NOMECAMPO=field(X)
       DBgotop()
       while !eof()
         texto:=alltrim(&NOMECAMPO)
         texto:=remacent(texto)
         field->&NOMECAMPO:=texto
         skip
       end
    endif
next
@ 11,10 SAY 'Remocao de acentos concluida com sucesso '
return(.t.)
*
Function RemAcent ( cTexto )

// acento agudo
cTexto := StrTran( cTexto, " ", "a" )
cTexto := StrTran( cTexto, "‚", "e" )
cTexto := StrTran( cTexto, "¡", "i" )
cTexto := StrTran( cTexto, "¢", "o" )
cTexto := StrTran( cTexto, "£", "u" )
cTexto := StrTran( cTexto, "µ", "A" )
cTexto := StrTran( cTexto, "", "E" )
cTexto := StrTran( cTexto, "Ö", "I" )
cTexto := StrTran( cTexto, "à", "O" )
cTexto := StrTran( cTexto, "é", "U" )

// acento circunflexo
cTexto := StrTran( cTexto, "ƒ", "a" )
cTexto := StrTran( cTexto, "ˆ", "e" )
cTexto := StrTran( cTexto, "Œ", "i" )
cTexto := StrTran( cTexto, "“", "o" )
cTexto := StrTran( cTexto, "–", "u" )
cTexto := StrTran( cTexto, "¶", "A" )
cTexto := StrTran( cTexto, "Ò", "E" )
cTexto := StrTran( cTexto, "×", "I" )
cTexto := StrTran( cTexto, "â", "O" )
cTexto := StrTran( cTexto, "ê", "U" )

// til
cTexto := StrTran( cTexto, "Æ", "a" )
cTexto := StrTran( cTexto, "ä", "o" )
cTexto := StrTran( cTexto, "Ç", "A" )
cTexto := StrTran( cTexto, "å", "O" )
cTexto := StrTran( cTexto, "™", "O" )
cTexto := StrTran( cTexto, "Ž", "A" )
cTexto := StrTran( cTexto, "†", "A" )

// ce-cedilha
cTexto := StrTran( cTexto, "‡", "c" )
cTexto := StrTran( cTexto, "€", "C" )

// trema
cTexto := StrTran( cTexto, "", "u" )
cTexto := StrTran( cTexto, "š", "U" )

// crase
cTexto := StrTran( cTexto, "…", "a" )
cTexto := StrTran( cTexto, "Š", "e" )
cTexto := StrTran( cTexto, "", "i" )
cTexto := StrTran( cTexto, "•", "o" )
cTexto := StrTran( cTexto, "—", "u" )
cTexto := StrTran( cTexto, "·", "A" )
cTexto := StrTran( cTexto, "Ô", "E" )
cTexto := StrTran( cTexto, "Þ", "I" )
cTexto := StrTran( cTexto, "ã", "O" )
cTexto := StrTran( cTexto, "ë", "U" )

//outros caracteres
cTexto := StrTran( cTexto, "§", "." )
cTexto := StrTran( cTexto, "¦", "." )
cTexto := StrTran( cTexto, '"', ""  )

Return cTexto

---
Notas da Moderação (Maligno):
1) A mensagem foi editada apenas para a inserção das tags de indentação de código, a fim de facilitar a visualização do código. Por favor, no futuro, insira essas tags, mesmo em códigos mais simples.
2) O tópico foi movido da seção "CA-Clipper", uma vez que seu conteúdo diverge dos objetivos daquela seção, onde só podem constar mensagens que lancem ou discutam dúvidas técnicas.

Re: Acentos / exportacao

Enviado: 16 Ago 2009 07:08
por Maligno
Vide dica já publicada:
viewtopic.php?f=1&t=1560&start=0