![]() |
Delphi-Version: XE
Download einer txt Datei. Fehlende Zeilenumbrüche.
Hallo,
ich habe ein Problem mit dem Download einer Textdatei von einem Server. Der Download wird über TIdHTTP in Delphi XE realisiert.
Delphi-Quellcode:
Der Download funktioniert auch, nur sind in der runtergeladen Textdatei sämtliche Zeilenumbrüche entfernt. Der gesamte Inhalt wird in die erste Zeile geschrieben, was zur Weiterverarbeitung sehr schlecht ist.
...
form1.idhttp1.Get('http://www.abc.de/def/gh.txt',stream2); ... Seltsam ist auch, das das Problem nur auf meinem Laptop (per Wlan, spielt das eine Rolle?) auftritt. Nicht aber auf dem Desktop PC, an dem ich meistens arbeite. Hat jemand eine Idee, woran das liegen könnte? |
AW: Download einer txt Datei. Fehlende Zeilenumbrüche.
Bist du sicher das alle Zeilenumbrüche weg sind und nicht nur die Unix-Version (CR statt CR+LF) bzw. MacOS (LF) vorliegt?
|
AW: Download einer txt Datei. Fehlende Zeilenumbrüche.
TidHttp sollte keine Zeilenumbrüche ändern,
wenn, dann verschwindet sowas gent beim FTP-up/download im Textmodus ... dort wird dieses auf Linuxservern nach #10 geändert, da dieses den Standardzeilenumbruch für Linux darstellt. |
AW: Download einer txt Datei. Fehlende Zeilenumbrüche.
Schlimmstenfalls kann man es so versuchen:
Delphi-Quellcode:
s := StringReplace(s, sLineBreak, #10, [rfReplaceAll]);
s := StringReplace(s, #10, sLineBreak, [rfReplaceAll]); |
AW: Download einer txt Datei. Fehlende Zeilenumbrüche.
Hast Du es mal mit einem Hex-Editor versucht?
Dann weiß man was in der Datei steht und muß nicht spekulieren. Gruß K-h |
AW: Download einer txt Datei. Fehlende Zeilenumbrüche.
Zitat:
und nutzt beim Speichern dann standardmäßig die Windowsvariante (#13#10). |
AW: Download einer txt Datei. Fehlende Zeilenumbrüche.
Hallo,
danke schon mal für die vielen Antworten. Die Textdatei wird in meinem Programm tatsächlich zeilenweise in einer TStringlist verarbeitet. In der StringList ist, wenn das Problem auftritt, immer nur ein Eintrag. Ich habe die Textdatei, wie empfohlen, mal in einem Hex-Editor geöffnet: An den Stellen wo Zeilenumbrüche sein sollten, befindet sich ein 0A. Soweit ich das googeln konnte, handelt es sich bei dem 0A um die Unix-Variante des Zeilenumbruchs, oder? Wäre ja ansich korrekt. (Der Server ist meines Wissens ein Unix System) Wenn ich die Textdatei manuell im Browser aufrufe, werden die Zeilenumbrüche korrekt dargestellt. Warum also erkennt die TStringlist das 0A nicht als Zeilenumbruch? Ergänzung: Das Herunterladen der Datei und das Laden in die TStringList findet nicht im Haupt-Threat des Programms statt, sondern in einem eigenen Threat. |
AW: Download einer txt Datei. Fehlende Zeilenumbrüche.
0A (oder #10 in Delphi) ist der Unix-Zeilenumbruch, der von Windows ist 0D0A (#13#10).
|
AW: Download einer txt Datei. Fehlende Zeilenumbrüche.
Zitat:
Hatte ja auch schon jemand geschrieben, dass die Stringlist mit Unix-Zeichenumbrüchen umgehen kann. Vermute der Fehler liegt irgendwo im Funktionsaufruf des Treads... Vielen Dank für die Hilfe! |
AW: Download einer txt Datei. Fehlende Zeilenumbrüche.
Wie himitsu bereits schrieb, erfolgt der Download einer Textdatei über TidHTTP in einer StringList vollständig und mit allen Zeilenumbrüchen. Auch die weitere Verarbeitung des Textes klappt nach folgendem Code wunderbar.
Delphi-Quellcode:
var
UC_Strings: TStrings; ... begin UC_Strings := TStringList.Create; try UC_Strings.Text := idHTTP1.Get('http://www.abc.de/def/gh.txt'); ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:41 Uhr. |
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