Página 1 de 1

acentuacao no DOS x NOTEPAD

Enviado: 23 Ago 2014 18:30
por Abel
Ola pessoal, nao sei se alguem ja passou por isso.
eu preciso criar um arquivo .csv para uma integracao no site, e meu sistema esta gerando o .csv certinho com cedilha e acentos, quando abro o csv por um editor msdos ta tudo certo, mas quando abro pelo notepad no lugar no cedilha tem um caracter estranho, alguem sabe como resolver isso ?

Abracos, e agradeco desde ja.
Abel

acentuacao no DOS x NOTEPAD

Enviado: 23 Ago 2014 19:52
por Jairo Maia
Olá Abel,

Antes de salvar a linha no arquivo .CSV, faça desta forma por exemplo:

Código: Selecionar todos

cSuaVariavel := Hb_OemToAnsi( cSuaVariavel )
Isso muda a codificação OEM (DOS) para ANSI (Windows). Se você então tentar verificar pelo editor DOS não será correto, mas pelo Notepad ou o Excel você verá tudo certinho.

acentuacao no DOS x NOTEPAD

Enviado: 24 Ago 2014 18:52
por Abel
ola Jairo, tem um outro detalhe que esqueci de falar,
este programa ta compilado em clipper 5.1

Abel

acentuacao no DOS x NOTEPAD

Enviado: 24 Ago 2014 20:13
por Jairo Maia
Olá Abel,
Abel escreveu:este programa ta compilado em clipper 5.1
Pois é! Mas você postou sua dúvida em Clipper no fórum de Harbour, então automaticamente qualquer membro pensaria na solução em Harbour. Mas tudo bem, apenas atente para essa questão, isso agiliza as respostas.

Mas quanto a seu problema, infelizmente o Clipper não tem suporte nativo para converter formatação de OEM para ANSI. Você terá que após criar seu arquivo, usar o comando RUN, ou se usa o Blinker, o comando SWPRUN(), e faça uma chamada para o aplicativo anexo da seguinte forma:

Código: Selecionar todos

Run "Oem2Ansi Arquivo.Ext"
Fonte do aplicativo anexo:

Código: Selecionar todos

REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PTISO

FuncTion Main( cFile )

 SetMode( 25, 80 )
 HB_LANGSELECT("PT")
 HB_SETCODEPAGE("PTISO")

 If Empty( cFile )
  Hb_Alert( "Arquivo não Informado!;Modo de uso: Oem2Ansi Arquivo.Ext" )
  Return Nil
 ElseIf !File( cFile )
  Hb_Alert( "Arquivo não Encontrado => "+cFile+";;Informe o Nome e a extensão do Arquivo!" )
  Return Nil
 EndIf
 
 cArquivo := MemoRead( cFile )
 If !MemoWrit( cFile, Hb_OemToAnsi( cArquivo ) )
  Hb_Alert( "A T E N Ç Ã O;;Falha na gravação do Arquivo!!!" )
 EndIf
 
Return Nil
Veja se vai resolver.

acentuacao no DOS x NOTEPAD

Enviado: 25 Ago 2014 20:12
por Abel
valeu mesmo Jairo.
Desculpe mesmo nem percebi que coloquei minha duvida no "harbour".

Abraços.
ABEL
:)Pos