Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Zeilenumbruch nach Download verschwunden (https://www.delphipraxis.net/151825-zeilenumbruch-nach-download-verschwunden.html)

dimholz 2. Jun 2010 18:49


Zeilenumbruch nach Download verschwunden
 
Hallo,
ich bin dabei einen Updater mit Turbo Delphi 2006 zu entwerfen, welcher seine Optionen durch eine ini-Datei von einem Server lädt.

Das Problem ist allerdings, dass alle heruntergeladenen Textdateien keinen Zeilenumbruch mehr besitzen, sodass Methoden wie ini.readstring(..) nicht ordungsgemäß funktionieren können.

Aus dem Original
Code:
[Option]
Version=1
Downloadliste=url
wird, heruntergeladen, folgendes:
Code:
[Option]Version=1Downloadliste=url
Den Download der Datei habe ich bereits mit den Methoden UrlDownloadToFile(..) und idhttp.get(..) durchgeführt, aber immer ist der Zeilenumbruch weg.

Dieser Thread (http://www.delphipraxis.net/internal...bruch+download) behandelt ja ein ähnliches Thema, nur möchte ich mich nicht damit zufrieden geben, den Uploadmodus bei jeder Datei auf Binär zu stellen. Immerhin schaffen es andere Programme auch, die Datei korrekt herunterzuladen.

Die fehlenden Zeilenumbrüche kann ich seltsamer Weise wiederherstellen, indem ich die heruntergeladene Datei z.B. in eine Listbox lade und diese wieder abspeichere. Dies ist aber selbst für mein ziemlich tief liegendes Niveau zu viel an Pfuscherrei :tongue:

Gibt es einen Weg, Textdateien trotz der "falschen" Uploadmethode originalgetreu herunterzuladen? Ich bin für jede Hilfe dankbar!

SirThornberry 2. Jun 2010 18:55

Re: Zeilenumbruch nach Download verschwunden
 
Bei deiner Uploadmethode werden Zeilenumbrüche zu einem #10. Unter Windows ist der Zeilenumbruch jedoch ein #13#10
Wenn du also durch deine Uploadmethode den Zeilenumbruch änderst bleibt dir nichts anderes übrig diesen auch wieder zurück zu ändern wenn er dir nicht zusagt.

himitsu 2. Jun 2010 18:59

Re: Zeilenumbruch nach Download verschwunden
 
Sicher daß die Umbrüche weg sind?
(Notepad, also der Windowseditor versteht keine Linux #10 und zeigt diese daher als "hauchdünne" Zeichen an)

PS: Wenn Dateien im Textmodus übertragen werden, dann tauschen einige Server die Zeilenumbrüche durch ihre Eigenen aus und da oftmals Linuxserver verwendet werden ... nja, da kommt dann halt nur die #10 raus. :stupid:

dimholz 2. Jun 2010 19:19

Re: Zeilenumbruch nach Download verschwunden
 
Danke für eure Antworten!

Zitat:

Zitat von himitsu
Sicher daß die Umbrüche weg sind?
(Notepad, also der Windowseditor versteht keine Linux #10 und zeigt diese daher als "hauchdünne" Zeichen an)

Tatsache. Notepad scheint wirklich in dem Zeilenumbruch ein mehr oder minder unsichtbares Zeichen zu interpretieren. Wordpad und auch OpenOffice erkennen die heruntergeladene Datei sogar mit Zeilenumbruch.

Theoretisch könnte ich mir ja eine eigene Prozedur schreiben, die eine ini-Datei lesen kann. Nur ist es trotzdem blöd, wenn Textdateien nicht so heruntergeladen werden, wie sie ursprünglich erstellt worden sind (und vom Anwender unabsichtlich falsch hochgeladen wurden).

Kann man denn während des Downloads, oder kurz danach, die Datei so bearbeiten, dass alle #10 zu einem #13#10 werden? Oder kann es auch sein, dass durch das Umschreiben, andere Programme Probleme mit dem Lesen der Datei bekommen?

Und noch eine Frage ^^": Stimmt es nun, dass die Dateien bereits quasi falsch auf den Server geladen werden, bzw falsch auf dem Server liegen?

himitsu 2. Jun 2010 19:44

Re: Zeilenumbruch nach Download verschwunden
 
per HTTP geschehen solche Änderungen selten.
Oftmals passiert dieses beim Transfer via FTP (im Textmodus ... im Binärmodus passiert sowas eigentlich nicht)

mit Wordpad öffnen und speichern (ist bei Windows meißt mit dabei)
oder via Programm in eine TStringList einlesen und neu speichern.

H4ndy 2. Jun 2010 19:48

Re: Zeilenumbruch nach Download verschwunden
 
Zitat:

Zitat von dimholz
Kann man denn während des Downloads, oder kurz danach, die Datei so bearbeiten, dass alle #10 zu einem #13#10 werden? Oder kann es auch sein, dass durch das Umschreiben, andere Programme Probleme mit dem Lesen der Datei bekommen?

Jag' einfach ein Suchen und Ersetzen drueber (#13 zu #13#10).

Zitat:

Zitat von dimholz
Und noch eine Frage ^^": Stimmt es nun, dass die Dateien bereits quasi falsch auf den Server geladen werden, bzw falsch auf dem Server liegen?

Ja. Wurde der ASCII-Transfermodus benutzt, dann hat der FTP-Server die Datei manipuliert und im neuen Format auf dem Server abgespeichert.

Zitat:

Zitat von himitsu
per HTTP geschehen solche Änderungen selten.
Oftmals passiert dieses beim Transfer via FTP (im Textmodus ... im Binärmodus passiert sowas eigentlich nicht)

Ueber HTTP-POST darf da (eigentlich) nix geaendert werden. Ebenso bei FTP im Binaer-Modus. Der FTP-ASCII-Modus ist die einzige mir bekannte zuverlaessige Methode, die Dateien beim Hochladen veraendert oder sogar unbrauchbar machen kann.

dimholz 2. Jun 2010 20:51

Re: Zeilenumbruch nach Download verschwunden
 
Ok, dann ich's mit der TStringlist versuchen.
Danke nochmal :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:15 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