acentuacao no DOS x NOTEPAD

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

Moderador: Moderadores

Abel
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 14 Mar 2012 13:16
Localização: sao paulo / sp

acentuacao no DOS x NOTEPAD

Mensagem 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
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

acentuacao no DOS x NOTEPAD

Mensagem 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.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Abel
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 14 Mar 2012 13:16
Localização: sao paulo / sp

acentuacao no DOS x NOTEPAD

Mensagem por Abel »

ola Jairo, tem um outro detalhe que esqueci de falar,
este programa ta compilado em clipper 5.1

Abel
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

acentuacao no DOS x NOTEPAD

Mensagem 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.
Anexos
oem2ansi.zip
(446.04 KiB) Baixado 59 vezes
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Abel
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 14 Mar 2012 13:16
Localização: sao paulo / sp

acentuacao no DOS x NOTEPAD

Mensagem por Abel »

valeu mesmo Jairo.
Desculpe mesmo nem percebi que coloquei minha duvida no "harbour".

Abraços.
ABEL
:)Pos
Responder