Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IdHttp - defekte Zeilenumbrüche (0A statt 0D0A) bei Text (https://www.delphipraxis.net/134677-idhttp-defekte-zeilenumbrueche-0a-statt-0d0a-bei-text.html)

moelski 26. Mai 2009 22:39

Re: IdHttp - defekte Zeilenumbrüche (0A statt 0D0A) bei Text
 
Moin !

Es hilft auch nix wenn ich anstatt von TFileStream einen TMemoryStream nutze und denn dann mittels SaveToFile auf Platte schreibe.
Das Ergebnis ist das gleiche - die 0D fehlen :evil:

Ich vermute doch ziemlich stark das es an der IdHTTP Komponente liegt bzw. einem fehlenden Parameter. :gruebel:

Neutral General 26. Mai 2009 22:54

Re: IdHttp - defekte Zeilenumbrüche (0A statt 0D0A) bei Text
 
Hi,

Wenn ich mich nicht irre (was durchaus sein kann), dann liegt es am Server oder/und an FTP. Wenn auf dem Server ein Unix Betriebssystem installiert ist, dann werden in allen Textdateien (bzw alle nicht-Binärdateien) die Zeilenumbrüche "konvertiert". Das ist meines Wissens ganz normal. Ich gehe davon aus, dass die aktuellen Browser damit klar kommen. Aber durch pures herunterladen dieser Textdateien mit HTTP bekommst du die Dateien genau so wie sie auf dem Server gespeichert sind: Mit Unix-Zeilenumbrüchen. Problem kannst du entweder beheben, indem du die Datei mit einer FTP Komponente runterlädst (denk ich mal) oder du lässt ein einfaches StringReplace auf die Textdatei los nachdem du sie runtergeladen hast.

Gruß
Neutral General

Satty67 26. Mai 2009 23:23

Re: TFileStream - defekte Zeilenumbrüche (0A statt 0D0A)
 
Zitat:

Zitat von moelski
Merkwürdig ist aber wenn ich es im Browser aufrufe stimmt alles:
http://www.logview.info/Update/LogView%20V2/i_about.txt

In FireFox sieht die Datei korrekt aus, lade ich die aber runter (Rechtsklick -> Speichern unter) sind alle Zeilen nur mit 0A abgeschlossen.

Die Datei wird also nur mit 0A als Zeilenumbruch vom Server angeboten.

Neutral General 27. Mai 2009 00:22

Re: TFileStream - defekte Zeilenumbrüche (0A statt 0D0A)
 
Zitat:

Zitat von Satty67
Zitat:

Zitat von moelski
Merkwürdig ist aber wenn ich es im Browser aufrufe stimmt alles:
http://www.logview.info/Update/LogView%20V2/i_about.txt

In FireFox sieht die Datei korrekt aus, lade ich die aber runter (Rechtsklick -> Speichern unter) sind alle Zeilen nur mit 0A abgeschlossen.

Die Datei wird also nur mit 0A als Zeilenumbruch vom Server angeboten.

Meine Worte ;)

BUG 27. Mai 2009 00:35

Re: TFileStream - defekte Zeilenumbrüche (0A statt 0D0A)
 
Erster :tongue: :
Zitat:

Zitat von BUG
Bei mir sind da nur Unix-Zeilenumbrüche :gruebel:

Du könntest versuchen, die Datei im binärmodus mit FTP hochzuladen, oder ...
Zitat:

Zitat von Neutral General
... du lässt ein einfaches StringReplace auf die Textdatei los nachdem du sie runtergeladen hast ...

... was ich für zielführender halte: Schließlich willst du dich bestimmt nicht jedes mal mit dem Server rumschlagen wenn du die Datei aktualisierst.


MfG,
Bug

Satty67 27. Mai 2009 06:56

Re: IdHttp - defekte Zeilenumbrüche (0A statt 0D0A) bei Text
 
War ja schon spät :oops:

Auf jeden Fall seltsam, das selbst eine umbenannte Datei (er sagt ja, er hat sie selbst als *.bin hoch geladen), von 0D0A nach 0A Umbrüche gewandelt wird. Um die eigene Procedure zu Testen (die wohl funktioniert), würde ich mal Server und Text-Datei ändern (sollte was in dem riesigen Internet zu finden sein).

moelski 27. Mai 2009 07:10

Re: IdHttp - defekte Zeilenumbrüche (0A statt 0D0A) bei Text
 
Moin Männers,

ich werde mal ne Mail an meinen Hoster schicken.
Mal sehen was die zu der Sache sagen.

Hätte auch schon ne passabele Lösung ... Ich lege alle Dateien gezippt ab. Dadurch würde sich auch der Downloadtraffic reduzieren.

nahpets 27. Mai 2009 08:49

Re: IdHttp - defekte Zeilenumbrüche (0A statt 0D0A) bei Text
 
Hallo,

mit
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var
          fs : TFileStream;
begin
  fs := TFileStream.Create('c:\About.xxx',fmCreate );
  idhttp1.Get('http://www.logview.info/Update/LogView%20V2/i_about.txt',fs);
  fs.Free;
end;
und
Delphi-Quellcode:
object IdHTTP1: TIdHTTP
  MaxLineAction = maException
  ReadTimeout = 0
  AllowCookies = True
  ProxyParams.BasicAuthentication = False
  ProxyParams.ProxyPort = 0
  Request.ContentLength = -1
  Request.ContentRangeEnd = 0
  Request.ContentRangeStart = 0
  Request.ContentType = 'text/html'
  Request.Accept = 'text/html, */*'
  Request.BasicAuthentication = False
  Request.UserAgent = 'Mozilla/3.0 (compatible; Indy Library)'
  HTTPOptions = [hoForceEncodeParams]
  Left = 328
  Top = 96
end
erhalte ich die Datei mit 0D0A. Indyversion: Die mit Delphi 7 geliefert 9.
Den Browsern ist der Zeilenumbruch schnuppe (da er für die Darstellung nicht benötigt wird).
Für den Download dürfte die Dateiendung irrelevant sein, sie hat unter Unix keinerlei Bedeutung. Eventuell ist da die Benutzung eines entsprechenden Contenttypes eher zielführend.

moelski 27. Mai 2009 09:50

Re: IdHttp - defekte Zeilenumbrüche (0A statt 0D0A) bei Text
 
Moins !

So ich habe Post bekommen vom Hoster :)
Das Problem liegt am FTP Upload (wie hier schon vermutet wurde). Im ASCII Mode passt der einfach mal die Dateien an. So ein Muff.

Nuja, ich habe jetzt die Dateien Binär übertragen und das problem ist weg. Die Alternative ist nach wie vor, alle Dateien zu zippen. Aber das ist dann eine neue Baustelle. Im Moment komme ich sehr gut mit dem Binär Transfer klar. Muss man eben nur wissen das ... :cyclops:

@nahpets:
Zitat:

erhalte ich die Datei mit 0D0A.
Das liegt vermutlich daran das ich die Datei inzwischen im Binär Mode neu übertragen habe.

Klaus01 27. Mai 2009 09:52

Re: IdHttp - defekte Zeilenumbrüche (0A statt 0D0A) bei Text
 
Zitat:

Zitat von moelski
.. Das Problem liegt am FTP Upload (wie hier schon vermutet wurde). Im ASCII Mode passt der einfach mal die Dateien an. So ein Muff.

Das macht, so weit ich das weiß, aber jeder FTP Client bzw. Server
wenn Ascii Daten zwischen der Windows und der Unix/Linux Welt ausgetauscht werden.

Bei dem Download via HTTP ist mir so ein Verhalten nicht bekannt.

Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:59 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz