Página 1 de 1
Conteúdo: 
Enviado: 27 Mai 2014 16:00
por Alexandre Silva
Ola..
uso o harbour 3.2 e tem um rotina que faço 2 txt para contabilidade..
uso o comando FWRITE() .. agora depois de anos.. um dos 2 arquivos está sendo recusado pelo sistema importador do contador... devido a esse caracter..que aparece no começo do arquivo...

Pelo que vi, está relacionado com o PHP. Nao consigo ver esse caracter com o notepad plus...
O arquivo tem 660K o outro de 91k nao dá problema
Alguma sugestao.. ?? qual comando do Harbour para gravar txt
Conteúdo: 
Enviado: 27 Mai 2014 16:52
por bencz
Tentou com o memowrit ?
MemoWrit()
Writes a character string or a memo field to a file.
Syntax
Conteúdo: 
Enviado: 27 Mai 2014 16:56
por bencz
Conteúdo: 
Enviado: 27 Mai 2014 19:30
por Alexandre Silva
Oi
Memowrit até retorna .t. , mas nao gera arquivo nenhum....
e sobre o link, é para php.. queria uma solucao para o Harbour..
Nunca tive problemas em gerar TXT...
Conteúdo: 
Enviado: 27 Mai 2014 20:00
por alxsts
Olá!
Talvez as configurações de linguagem estejam interferindo. Como estão configuradas? Tente colocar:
Conteúdo: 
Enviado: 27 Mai 2014 20:07
por fladimir
No Harbour tem tb o HB_MEMOWRIT(), teste com ele, se não der se tiver como mandar o arquivo para ser melhor avaliado ou o código de como vc esta fazendo.
[]´s
Conteúdo: 
Enviado: 27 Mai 2014 20:36
por Alexandre Silva
Eu estou usando
Código: Selecionar todos
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_ES850C
HB_SETCODEPAGE('ES850C')
HB_LANGSELECT('PT')
varq:=fcreate('nomearq.txt')
fopen(varq, 2) // para leitura e escrita
// vou montando linha a linha e gravando..
vtxt:='10111111111111111111112'+space(219)+chr(13)+chr(10)
fwrite(varq,vtxt)
vtxt:='20144444444444411111112'+space(219)+chr(13)+chr(10)
fwrite(varq,vtxt)
fclose(varq)
Como ficaria no hb_memowit() ??
PS: Nos meus editores (Notepad++ e o Edit do Windows) nao aparece o caracter, só na importacao no contador
Vcs podem me indicar um editor para ver o txt ??
Conteúdo: 
Enviado: 27 Mai 2014 21:30
por alxsts
Olá!
Estranho suas
code pages estarem configuradas para espanhol (ES)...
O
MED - Programmers' Text Editor exibe o código ASCII do carácter anterior à posição do cursor no texto. O download é pequeno e a instalação rápida.

- Capturar.PNG (7.2 KiB) Exibido 1469 vezes
Conteúdo: 
Enviado: 27 Mai 2014 22:12
por Alexandre Silva
Obrigado....
Com o editor nao consegui ver o caracter que o software do contador alega...
A menos que tenha alguma config especifica..
Entao vou aguardar..para ver com ele...
Conteúdo: 
Enviado: 27 Mai 2014 22:17
por bencz
O que quis dizer mandando o link do stack-over-flow, não é p/ se ver sobre o PHP, e sim sobre o conteudo da resposta e no que isso influencia na sua pergunta, bastava ler (:
http://en.wikipedia.org/wiki/Byte_order_mark
A resposta escolida no site diz o seguinte:
That's the representation for the UTF-8 BOM in ISO-8859-1. You have to tell your editor to not use BOMs or use a different editor to strip them out.
Essa é a representação para o UTF-8 BOM em ISO-8859-1. Você tem que dizer a seu editor para não usar BOMs ou usar um editor diferente para tira-los.
Conteúdo: 
Enviado: 27 Mai 2014 22:28
por Alexandre Silva
Ok
vi isso
e sabia, pq o Resposavel pelo software do contador, editou o arquivo...para importar
Eu é que nao consigo ver aqui.. vou ver com ele qual editor usou ..
Conteúdo: 
Enviado: 27 Mai 2014 23:04
por Toledo
Alexandre Silva escreveu:varq:=fcreate('nomearq.txt')
fopen(varq, 2) // para leitura e escrita
No seu código, esta segunda linha fopen(varq,2) não é necessário, pois o arquivo já foi aberto na linha anterior com o fcreate(). Pode ser que seja este o problema.
Abraços,
Conteúdo: 
Enviado: 27 Mai 2014 23:36
por Alexandre Silva
A funcao que abre/cria é essa ...
Código: Selecionar todos
function DFILEOPEN(varq)
local ret
ret:= fopen(varq, 2)
if (ret = -1) // se nao existe
ret:= fcreate(varq)
endif
fclose(ret)
ret:= fopen(varq, 2)
return ret
Conteúdo: 
Enviado: 28 Mai 2014 07:38
por Toledo
Alexandre Silva escreveu:Eu estou usando
Alexandre Silva escreveu:A funcao que abre/cria é essa ...
Deu a entender que você estava usando a da sua mensagem anterior.
Alexandre Silva escreveu:fclose(ret)
ret:= fopen(varq, 2)
Estes comandos também estão a mais, não precisa, pois nas linhas anteriores ou o arquivo será aberto no FOPEN() ou no FCREATE().
Abraços,
Conteúdo: 
Enviado: 09 Jul 2014 21:16
por Alexandre Silva
Oi
Só para fechar.
o que estava havendo é que no cadastro de um produto. passou um caracter especial..
entao na geracao do arquivo txt o harbour, grava (escondido ) esse caracter ,
para indicar que é um arquivo OEM...
Bem ao salvar o arquivo pelo bloco de notas em formato ANSI, consegui ver qual era o problema...
entao é isso..nao tem haver com abertura de arquivo..consegui resolver..