Boa tarde amigos
Estou fazendo uma rotina onde gravo um arquivo TXT que será enviado por e-mail ao cliente.
Quando o cliente abre no seu iphone por ex, o aquivo abre certo.
Porém quando ele abre o arquivo no PC, usando o Bloco de Notas, o arquivo fica juntando a primeira linha com a segunda
a terceira com a quarta e assim por diante.
Eu gravo o arquivo setando PRINTER TO &arquivo.
Existe algum caracter para gravar que, ao abrir com o Bloco de Notas, ele separe as linhas corretamente ?
Desde já agradeço.
Abraço
Rosalvo
Nova Linha em arquivo texto
Moderador: Moderadores
- rosalvo rosa
- Usuário Nível 3

- Mensagens: 156
- Registrado em: 10 Jan 2006 19:21
- Localização: Curitiba - PR
Nova Linha em arquivo texto
Pode colocar o trecho de código onde está gravando?
William Manesco
Harbour 3.x | Fivewin | BCC | MySQL (TDolphin) | HBQT | HBIDE | Atom
Harbour 3.x | Fivewin | BCC | MySQL (TDolphin) | HBQT | HBIDE | Atom
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Nova Linha em arquivo texto
Olá!
Se seu sistema roda sob Windows, acrescente Chr(13) + Chr(10) ao final de cada linha a ser impressa. Se utiliza Harbour, poderá tornar este processo independente do sistema operacional acrescentando o retorno da função hb_eol() ao final de cada linha a imprimir. Talvez até já esteja fazendo isto e obtendo problemas com o Notepad. Pode acontecer pois este editor é bem simples...
Se seu sistema roda sob Windows, acrescente Chr(13) + Chr(10) ao final de cada linha a ser impressa. Se utiliza Harbour, poderá tornar este processo independente do sistema operacional acrescentando o retorno da função hb_eol() ao final de cada linha a imprimir. Talvez até já esteja fazendo isto e obtendo problemas com o Notepad. Pode acontecer pois este editor é bem simples...
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Nova Linha em arquivo texto
Na prática as informações são insuficientes.
Depois de um SET PRINTER TO arquivo pode existir qualquer coisa, não significa que esteja certo.
Se for considerar somente esse comando, está certo e não tem o que fazer.
Tudo depende do que vém depois.
Poste um exemplo simples, enviando duas linhas pro arquivo, pra ver como está fazendo.
Depois de um SET PRINTER TO arquivo pode existir qualquer coisa, não significa que esteja certo.
Se for considerar somente esse comando, está certo e não tem o que fazer.
Tudo depende do que vém depois.
Poste um exemplo simples, enviando duas linhas pro arquivo, pra ver como está fazendo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- rosalvo rosa
- Usuário Nível 3

- Mensagens: 156
- Registrado em: 10 Jan 2006 19:21
- Localização: Curitiba - PR
Nova Linha em arquivo texto
Olá pessoal.
Mudei a forma de criar o arquivo e deu certo. Agora estou usando o FWRITE
De qualquer maneira, fica o registro e agradecimento. Valeu pessoal.
cRetLine := "chr(13)+chr(10)"
errhandle := FCREATE("TESTEX.TXT")
cLinha:= " EMPRESA "
FWRITE(errhandle,cLinha+&cRetLine.)
For i:=1 To 5
cLinha:= REPLICATE("-",30) + " linha " + Str(i,1)
FWRITE(errhandle,cLinha+&cRetLine.)
Next
FCLOSE(errhandle)
FCLOSE("TESTEX.TXT")
Mudei a forma de criar o arquivo e deu certo. Agora estou usando o FWRITE
De qualquer maneira, fica o registro e agradecimento. Valeu pessoal.
cRetLine := "chr(13)+chr(10)"
errhandle := FCREATE("TESTEX.TXT")
cLinha:= " EMPRESA "
FWRITE(errhandle,cLinha+&cRetLine.)
For i:=1 To 5
cLinha:= REPLICATE("-",30) + " linha " + Str(i,1)
FWRITE(errhandle,cLinha+&cRetLine.)
Next
FCLOSE(errhandle)
FCLOSE("TESTEX.TXT")
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Nova Linha em arquivo texto
Olá!
Este código pode ser melhorado:
- Ao invés de definir uma string e atribuir "Chr(13) + Chr(10)", atribua os caracteres diretamente:
- Na hora de gravar, não use o operador macro ( & ). Use Isto melhora a performance e diminui o tamanho do executável...
Este código pode ser melhorado:
- Ao invés de definir uma string e atribuir "Chr(13) + Chr(10)", atribua os caracteres diretamente:
Código: Selecionar todos
cRetLine := chr(13)+chr(10) Código: Selecionar todos
FWRITE(errhandle,cLinha + cRetLine)[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- rosalvo rosa
- Usuário Nível 3

- Mensagens: 156
- Registrado em: 10 Jan 2006 19:21
- Localização: Curitiba - PR