AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Download einer txt Datei. Fehlende Zeilenumbrüche.
Thema durchsuchen
Ansicht
Themen-Optionen

Download einer txt Datei. Fehlende Zeilenumbrüche.

Ein Thema von noname2010 · begonnen am 15. Mär 2011 · letzter Beitrag vom 24. Mär 2011
Antwort Antwort
noname2010

Registriert seit: 28. Mär 2010
5 Beiträge
 
#1

Download einer txt Datei. Fehlende Zeilenumbrüche.

  Alt 15. Mär 2011, 21:26
Delphi-Version: XE
Hallo,
ich habe ein Problem mit dem Download einer Textdatei von einem Server.

Der Download wird über TIdHTTP in Delphi XE realisiert.

Delphi-Quellcode:
...
form1.idhttp1.Get('http://www.abc.de/def/gh.txt',stream2);
...
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.

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?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Download einer txt Datei. Fehlende Zeilenumbrüche.

  Alt 15. Mär 2011, 22:27
Bist du sicher das alle Zeilenumbrüche weg sind und nicht nur die Unix-Version (CR statt CR+LF) bzw. MacOS (LF) vorliegt?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: Download einer txt Datei. Fehlende Zeilenumbrüche.

  Alt 16. Mär 2011, 00:51
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.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#4

AW: Download einer txt Datei. Fehlende Zeilenumbrüche.

  Alt 16. Mär 2011, 09:27
Schlimmstenfalls kann man es so versuchen:
Delphi-Quellcode:
s := StringReplace(s, sLineBreak, #10, [rfReplaceAll]);
s := StringReplace(s, #10, sLineBreak, [rfReplaceAll]);
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Download einer txt Datei. Fehlende Zeilenumbrüche.

  Alt 16. Mär 2011, 10:37
Hast Du es mal mit einem Hex-Editor versucht?
Dann weiß man was in der Datei steht und muß nicht spekulieren.

Gruß
K-h
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: Download einer txt Datei. Fehlende Zeilenumbrüche.

  Alt 16. Mär 2011, 10:50
Zitat:
Schlimmstenfalls kann man es so versuchen:
Einfach in eine TStringList einlesen ... diese kommt auch mit Linux (#10), eventuell sogar Mac (#13) und natürlich Windows (#13#10) zurecht
und nutzt beim Speichern dann standardmäßig die Windowsvariante (#13#10).
$2B or not $2B
  Mit Zitat antworten Zitat
noname2010

Registriert seit: 28. Mär 2010
5 Beiträge
 
#7

AW: Download einer txt Datei. Fehlende Zeilenumbrüche.

  Alt 16. Mär 2011, 18:37
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.

Geändert von noname2010 (16. Mär 2011 um 18:42 Uhr) Grund: Ergänzung:
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#8

AW: Download einer txt Datei. Fehlende Zeilenumbrüche.

  Alt 16. Mär 2011, 18:39
0A (oder #10 in Delphi) ist der Unix-Zeilenumbruch, der von Windows ist 0D0A (#13#10).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
noname2010

Registriert seit: 28. Mär 2010
5 Beiträge
 
#9

AW: Download einer txt Datei. Fehlende Zeilenumbrüche.

  Alt 16. Mär 2011, 19:49
0A (oder #10 in Delphi) ist der Unix-Zeilenumbruch, der von Windows ist 0D0A (#13#10).
Ok, also ich denke, dass der Fehler nicht in der Textdatei liegt. Da scheint soweit alles richtig zu sein.
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!
  Mit Zitat antworten Zitat
Benutzerbild von roga
roga

Registriert seit: 15. Jun 2008
Ort: Sachsen-Anhalt
109 Beiträge
 
Delphi XE8 Professional
 
#10

AW: Download einer txt Datei. Fehlende Zeilenumbrüche.

  Alt 24. Mär 2011, 16:22
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');

    ...
Ronald
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz