Página 1 de 1

Remover Acentos na exportação de texto

Enviado: 26 Nov 2015 16:47
por Marcio_Carneiro
Olá, amigos

Já fiz o dever de casa e pesquisei no forum, sobre o assunto acima

Já baixei os programas exemplos: converte.prg/remacent.prg já disponibilizado por colegas.

Mas não está dando certo:

a string:PAPEL HIGIÊNICO CARINHO PCT. ÇICA Ç PERF

tem como resposta:
PAPEL HIGIˆNICO CARINHO PCT. €ICA € PERF

onde vemos que a conversão estão dando errado. O que posso estar fazendo errado?

Uma coisa que me encafifou, é que meu programa é console harbour, e os caracteres especiais e acentos, ficam perfeitos, mas quando exporta para um programa feito em fivewin, ficam com caracteres estranhos e dão erro na impressora fiscal. Ambos os arquivos são dbf. Fiquei curioso.

Agora, preciso converter meus textos para compatibilizar com o aplicativo PAF de um parceiro. Sempre funcionou, agora numa nova versão do aplicativo PAF/ECF tá dando erro. O parceiro alega que a nova dll da Bematech é que está dando chabu

Remover Acentos na exportação de texto

Enviado: 27 Nov 2015 09:59
por Kapiaba

Código: Selecionar todos

      cDocXml = TIRA_ACENTUACAO( cDocXml )

      cDocXml = StrTran( cDocXml , "CorreCAo" , "Correcao" )

      nHandle:=Fcreate(cDestino+cFile)

      Fwrite(nHandle,cDocXml)
      FClose(nHandle)

      Ou,

      WNOME:= alltrim(TIRA_ACENTUACAO(CADCLIEN->CLIENTE))



FUNCTION TIRA_ACENTUACAO( cStr )

   local cStrNew := "", nX
   cAcentos := {"—","ƒ","Æ","Ç"," ","µ","…","·","‚","É","ê","ˆ","","Ò","í","Í","ó","¢","à","ä","å","“","â","ú","é","","š","ç","€","ã","Ã","á","Á","à","À","é","É","ê","Ê","í","Í","ó","Ó","õ","Õ","ô","Ô","ú","Ú","ü","Ü","ç","ù","AAO","§","¦","º","ª","€","‡","Ç","ç","'","`","ø","¡","Þ","×","Ø", chr(239)}
   cLetras  := {"U","A","A","A","A","A","A","A","E","E","E","E","E","E","I","I","O","O","O","O","O","O","O","U","U","U","U","C","C","A","A","A","A","A","A","E","E","E","E","I","I","O","O","O","O","O","O","U","U","U","U","C"," ","CAO",".",".",".",".","C","C","C","C","" ,"" ,".","I","I","I","I",    ""   }
   For nX := 1 TO LEN(cAcentos)
       cStrNew := StrTran(cStr, cAcentos[nX], cLetras[nX])
       cStr := cStrNew
   Next
Return( cStrNew )

Remover Acentos na exportação de texto

Enviado: 27 Nov 2015 12:27
por Jairo Maia
Olá Pessoal,
Marcio_Carneiro escreveu:mas quando exporta para um programa feito em fivewin, ficam com caracteres estranhos e dão erro na impressora fiscal
Já tentou mudar a codificação antes de exportar para o FiveWin?:

Código: Selecionar todos

cString := Hb_OemToAnsi( cString )

Remover Acentos na exportação de texto

Enviado: 02 Dez 2015 14:10
por Marcio_Carneiro
Deu certo Kapiaba, somente troquei uma letra que trocava espaços em brancos por A, no seu exemplo.

Jairo Maia, obrigado pela atenção. Já tinha tentado este recurso, não me lembro sera oemtoansi ou ansitoem, mas tinha dado errado.

Obrigado pela atenção de todos.

Mas fiquei na dúvida, por que um prg pode acentos/caracteres especiais e outro não?

Remover Acentos na exportação de texto

Enviado: 02 Dez 2015 14:55
por Kapiaba
No seu MENU PRINCIPAL, fazes assim?

Código: Selecionar todos

REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850

ANNOUNCE RDDSYS
REQUEST OrdKeyNo, OrdKeyCount, OrdCreate, OrdKeyGoto
REQUEST DBFCDX, DBFFPT
ANNOUNCE FPTCDX

FUNCTION MAIN()


    SET DATE BRITISH
    SET EPOCH TO 1950
    SET CENTURY ON
    SET SOFTSEEK OFF
    SET WRAP ON
    SETCANCEL( .F. )
    SET CONFIRM OFF
    SET DELETED ON
    SET ESCAPE OFF
    SET EXACT ON  // CONTROLA O :=, = e ==
    SET EXCLUSIVE OFF
    SET MULTIPLE OFF

    RDDSETDEFAULT("DBFCDX")

    IF ISEXERUNNING( CFILENAME( HB_ARGV( 0 ) ) )
       __Quit()
    ENDIF

    //->Defaults da Lingua Portuguesa do [x]Harbour
    HB_LANGSELECT( 'PT' )         // Default language is now Portuguese
    //->Como indexar corretamente campos acentuados Harbour/xHarbour
    //->Este recurso e valido para Harbour e xHarbour e requer a biblioteca
    //->CODEPAGE.LIB.
    HB_SETCODEPAGE( "PT850" )