baixa arquivo texto deformado

Delphi

25/05/2009

Aew rapaziada do bem bolado :shock:

estou precisando baixar um arquivo aqui .txt do servidor,
para isso estou fazendo o seguinte:

  function DownloadFile(Source, Dest: string): Boolean;
begin
  try
    Result:= UrlDownloadToFile(nil, PChar(source),PChar(Dest), 0, nil) = 0;
  except
    Result:= False;
  end;
end;

DownloadFile(´http://servidor.com/arquivo/notepad.txt´,´C:\notepad.txt´);


e tá baixando normal, mais não está quebrando as linhas escritas dentro do arquivo, e fica tudo junto e misturado...
alguém sabe pq isso está ocorrendo...
ja tentei baixalo como png depois renomear para txt e fica deformado do mesmo jeito, qual a solução?


Psycho

Psycho

Curtidas 0

Respostas

Woinch

Woinch

25/05/2009

Creio que a solução seja formatar corretamente o arquivo texto.
Abra em algum outro editor de textos (WordPad) para ver se o texto irá aparecer corretamente. Se sim, o problema é o que lhe falei anteriormente.
O Enter é uma sequência de dois caracteres... o #1310, ou carriage-return + line-feed ou CR + LF.
Você precisará formatar corretamente seu arquivo.txt ou localizar todos os 10 e/ou 13 sozinhos e reajustá-los.

Espero ter ajudado.


GOSTEI 0
Psycho

Psycho

25/05/2009

Creio que a solução seja formatar corretamente o arquivo texto. Abra em algum outro editor de textos (WordPad) para ver se o texto irá aparecer corretamente. Se sim, o problema é o que lhe falei anteriormente. O Enter é uma sequência de dois caracteres... o #1310, ou carriage-return + line-feed ou CR + LF. Você precisará formatar corretamente seu arquivo.txt ou localizar todos os 10 e/ou 13 sozinhos e reajustá-los. Espero ter ajudado.


preciso baixar o arquivo de texto do jeito que esta no servidor,
já que desse nao deu certo tentei por ftp, e funcionou legal mais...
quando abre o aplicativo o firewal do windows exibi aquele alerta,
tentei por http e ficou tudo misturado...

será que nao existe outra alternativa melhor para baixar arquivos ascii?

aguardo por sugestoes...

até mais


GOSTEI 0
Woinch

Woinch

25/05/2009

Cara, creio que nenhuma alternativa para download do arquivo vai dar problema... a nao ser que você monte o arquivo na mão...
Experimente utilizar o componente IdHTTP... aqui mesmo no fórum explica como utilizar.

Espero ter ajudado.


GOSTEI 0
Marcosrocha

Marcosrocha

25/05/2009

Woinch o problema dele pode ser que o Servidor de Internet esteja gerando o arquivo no formato UTF-8 (Unix, Mac...) e o Windows não consegue identificar os códigos de quebra de linha por utilizar ASCII.


GOSTEI 0
Woinch

Woinch

25/05/2009

Eu também acho que seja devido a gravação do arquivo, mas ele mencionou que ao efetuar o download via FTP do arquivo funciona... Talvez o problema seja onde ele está abrindo o arquivo.


GOSTEI 0
Psycho

Psycho

25/05/2009

Woinch o problema dele pode ser que o Servidor de Internet esteja gerando o arquivo no formato UTF-8 (Unix, Mac...) e o Windows não consegue identificar os códigos de quebra de linha por utilizar ASCII.


exatamente, é isso que ocorre...
agora por ftp é só selecionar no transfertype do componente
a opção ftASCII, por isso pelo ftp o arquivo vem normal...
mais pelo http tbm consegui, e para quem estiver atras do mesmo:

var
 caminho : string;
 MyFile: TFileStream;

begin
// definir o link
 caminho:= ´http://site.com/arquivo.extensao´;  // aqui defini um caminho pardão pro download , pode ser trocado por um edit, etc
 MyFile := TFileStream.Create(´C:\diretorio´, fmCreate); // local no hd e nome do arquivo com a extensão, onde vai salvar.
 try
    http.Get(´http://site.com/arquivo.extensao´, MyFile); // fazendo o download do arquivo
  finally
    MyFile.Free;


valeu!!

[]´s


GOSTEI 0
Marcosrocha

Marcosrocha

25/05/2009

Muito bom psycho, obrigado por postar a solução e ajudar o pessoal da comunidade que pode vir a passar por este problema também :wink:


GOSTEI 0
POSTAR