Boa tarde
uma função que tire caracteres inválidos ao emitir NFE
alguem pode disponibilizar ?
è È é É por exemplo trocaria esses pelo correto SEM acento
Paiva
cpaivasistemas@gmail.com
função tira assento e converte para maiuscula
Moderador: Moderadores
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
função tira assento e converte para maiuscula
Olá!
Veja ai se vai dar certo!
Saudações,
Itamar M. Lins Jr.
Código: Selecionar todos
FUNCTION RemoveAcentos( cTexto )
LOCAL cSemAcento := ""
LOCAL cChar, nPos
LOCAL aAcentos := { ;
{"á","a"}, {"à","a"}, {"ã","a"}, {"â","a"}, {"ä","a"}, ;
{"é","e"}, {"è","e"}, {"ê","e"}, {"ë","e"}, ;
{"í","i"}, {"ì","i"}, {"î","i"}, {"ï","i"}, ;
{"ó","o"}, {"ò","o"}, {"õ","o"}, {"ô","o"}, {"ö","o"}, ;
{"ú","u"}, {"ù","u"}, {"û","u"}, {"ü","u"}, ;
{"ç","c"}, {"ñ","n"}, ;
{"Á","A"}, {"À","A"}, {"Ã","A"}, {"Â","A"}, {"Ä","A"}, ;
{"É","E"}, {"È","E"}, {"Ê","E"}, {"Ë","E"}, ;
{"Í","I"}, {"Ì","I"}, {"Î","I"}, {"Ï","I"}, ;
{"Ó","O"}, {"Ò","O"}, {"Õ","O"}, {"Ô","O"}, {"Ö","O"}, ;
{"Ú","U"}, {"Ù","U"}, {"Û","U"}, {"Ü","U"}, ;
{"Ç","C"}, {"Ñ","N"} }
FOR EACH cChar IN cTexto
nPos := AScan( aAcentos, {|x| x[1] == cChar } )
cSemAcento += IIF( nPos > 0, aAcentos[nPos][2], cChar )
NEXT
RETURN Upper( cSemAcento )
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
função tira assento e converte para maiuscula
Olá
Conforme fui achando, fui colocando, veja se serve.
Poka
Código: Selecionar todos
Function RemoverAcentos( cTexto )
// outros diferentes
cTexto := StrTran( cTexto, "A‡", "C" )
cTexto := StrTran( cTexto, "Aƒ", "A" )
cTexto := StrTran( cTexto, chr(135), "C" )
// 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" )
// 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" )
cTexto := StrTran( cTexto, "A‰", "E" )
//
cTexto := StrTran( cTexto, "'", " " )
cTexto := StrTran( cTexto, "´", " " )
cTexto := StrTran( cTexto, "´", " " )
//
cTexto := StrTran( cTexto, "A§A£", "ÇÃ" )
cTexto := StrTran( cTexto, "A£", "Ã" )
cTexto := StrTran( cTexto, "A©", "É" )
cTexto := StrTran( cTexto, "A", "Í" )
cTexto := StrTran( cTexto, "A¡", "Á" )
cTexto := StrTran( cTexto, "A³", "Ó" )
cTexto := StrTran( cTexto, "A§", "Ç" )
*-----------------------------------
// 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" )
//
cTexto := StrTran( cTexto, "‚", "a" )
cTexto := StrTran( cTexto, "¡", "a" )
cTexto := StrTran( cTexto, "¢", "a" )
cTexto := StrTran( cTexto, "£", "a" )
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" )
cTexto := StrTran( cTexto, "¶", "A" )
cTexto := StrTran( cTexto, "â", "O" )
cTexto := StrTran( cTexto, "ƒ", "a" )
cTexto := StrTran( cTexto, "“", "o" )
// til
cTexto := StrTran( cTexto, "ã", "a" )
cTexto := StrTran( cTexto, "õ", "o" )
cTexto := StrTran( cTexto, "Ã", "A" )
cTexto := StrTran( cTexto, "Õ", "O" )
cTexto := StrTran( cTexto, "Ç", "A" )
cTexto := StrTran( cTexto, "å", "O" )
cTexto := StrTran( cTexto, "Æ", "a" )
cTexto := StrTran( cTexto, "ä", "o" )
// ce-cedilha
cTexto := StrTran( cTexto, "ç", "c" )
cTexto := StrTran( cTexto, "Ç", "C" )
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" )
cTexto := StrTran( cTexto, "¶", "A" )
cTexto := StrTran( cTexto, "â", "O" )
cTexto := StrTran( cTexto, "ƒ", "a" )
cTexto := StrTran( cTexto, "“", "o" )
Return UPPER(cTexto)
Poka
função tira assento e converte para maiuscula
Uso estes métodos que implementei na classe para geração de xml da nfe, funciona perfeitamente a anos
Se precisar da classe está em https://github.com/malcarli1/Nfe_Classe
Colaboração e sugestões são bem aceitas
Att.
Marcelo A. L. Carli
Marília/SP
Capital Nacional do Alimento ®
https://malc-informatica.ueniweb.com
Insta: @malcarli25
Email / Skype: marceloalcarli@gmail.com
Código: Selecionar todos
* ----> Metodo para Retirar Caracteres/Sinais de uma String <----------------- *
METHOD fRetiraSinal(cStr, cEliminar)
hb_Default(@cEliminar, "°ºª /;-:,\.(){}[]`´’' ")
Return (CharRem(cEliminar, cStr))
* -----------------------> Metodo Retira acentos de uma string <-------------- *
METHOD fRetiraAcento(cStr)
Local aFrom := {[Á],[À],[Â],[Ã],[Ä],[Å],[A],[A],[A],[Æ] ,[Ç],[C],[C],[É],[È],[Ê],[Ë],[E],[E],[Í],[Ì],[Î],[Ï],[L],[L],[N],[Ñ],[Ó],[Ò],[Ô],[Õ],[Ö],[Ø],[Œ] ,[R],[R],[S],[Š],[S],[T],[Ú],[Ù],[Û],[Ü],[U],[Ý],[Ÿ],[Z],[Ž],[Z],[á],[à],[â],[ã],[ä],[å],[a],[a],[a],[æ] ,[ç],[c],[c],[é],[è],[ê],[ë],[e],[e],[í],[ì],[î],[ï],[l],[l],[n],[ñ],[ó],[ò],[ô],[õ],[ö],[ø],[œ] ,[r],[r],[s],[š],[s],[t],[ú],[ù],[û],[ü],[u],[ý],[ÿ],[z],[ž],[z],[ß] ,[&],[º] ,[ª] ,[‡],[¡],[£],[ÿ],[ ],[á],[] ,[ ],[ ],[‚],[ˆ],[“],[¢],[…],[°],[A³],[A§],[Ai],[A©],[Ao.],[’],[´]}
Local aTo := {[A],[A],[A],[A],[A],[A],[A],[A],[A],[AE],[C],[C],[C],[E],[E],[E],[E],[E],[E],[I],[I],[I],[I],[L],[L],[N],[N],[O],[O],[O],[O],[O],[O],[OE],[R],[R],[S],[S],[S],[T],[U],[U],[U],[U],[U],[Y],[Y],[Z],[Z],[Z],[a],[a],[a],[a],[a],[a],[a],[a],[a],[ae],[c],[c],[c],[e],[e],[e],[e],[e],[e],[i],[i],[i],[i],[l],[l],[n],[n],[o],[o],[o],[o],[o],[o],[oe],[r],[r],[s],[s],[s],[t],[u],[u],[u],[u],[u],[y],[y],[z],[z],[z],[ss],[E],[o.],[a.],[c],[i],[u],[a],[a],[a],[E],[a],[ ],[e],[e],[o],[o],[a],[],[o],[c],[a],[e],[u],[],[]}, i
hb_Default( @cStr,"" )
For i:= 1 To Len( aFrom )
cStr:= StrTran(cStr, aFrom[i], aTo[i])
Next
Return (cStr)
Se precisar da classe está em https://github.com/malcarli1/Nfe_Classe
Colaboração e sugestões são bem aceitas
Att.
Marcelo A. L. Carli
Marília/SP
Capital Nacional do Alimento ®
https://malc-informatica.ueniweb.com
Insta: @malcarli25
Email / Skype: marceloalcarli@gmail.com

