Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Hilfe mit Delphi [idhttp.get error] (https://www.delphipraxis.net/184509-hilfe-mit-delphi-%5Bidhttp-get-error%5D.html)

RooT314 1. Apr 2015 13:05

AW: Hilfe mit Delphi [idhttp.get error]
 
Zitat:

Zitat von Perlsau (Beitrag 1295781)
Himitsu meinte, daß du für das Abspeichern des des TFileStreams eine Datei und nicht nur ein Verzeichnis benötigst:

Nicht C:\MeinOrdner\
sondern
C:\MeinOrdner\Datei.html

Ahhh ! Habs verstanden und auch direkt behoben ! Und siehe da es funktioniert ! :)

hier der neue code falls ihn vllt irgendwer mal braucht :)

Code:
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdHTTP;

type
  TForm3 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    Button2: TButton;
    IdHTTP1: TIdHTTP;
    SpeicherEd: TEdit;
    SaveDialog1: TSaveDialog;
    AuswahlB: TButton;
    NameEd: TEdit;
    OpenDialog1: TOpenDialog;
    procedure Button1Click(Sender: TObject);
    procedure NameEdEnter(Sender: TObject);
    procedure AuswahlBClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Speicherort, Form3: TForm3;

implementation

uses
  unit2, unit1, Filectrl;
{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);
var ResponseStream: TFileStream;
begin
  ResponseStream := TFileStream.Create(SpeicherEd.Text, fmCreate);
  try
    idHTTP1.Get(url, ResponseStream);
  finally
    ResponseStream.Free;
    end;
    ShowMessage('Download abgeschlossen');
  end;

procedure TForm3.AuswahlBClick(Sender: TObject);
var dir : String;
begin
  dir := ExtractFilePath(Application.ExeName);
  if SelectDirectory ('Bitte ein Verzeichnis auswählen','',Dir)
    then
    SpeicherEd.Text := (dir+'\'+NameEd.text+'.html');

end;

procedure TForm3.NameEdEnter(Sender: TObject);
begin
 NameEd.Text := '';
end;

end.
Nurnoch eine letzte frage :) : Bei der gedownloadeten HTML Datei werden Bilder nicht angezeigt :? Gründe dafür und kann man das beheben ? :)

Gruß

Jumpy 1. Apr 2015 15:48

AW: Hilfe mit Delphi [idhttp.get error]
 
In der Regel ist das ja so, dass die Bilder kein Teil der HTML-Datei sind. Stattdessen steht in der HTML-Datei ja eine URL oder so des Bildes in einem Image-Tag, was dem Browser sagt, dass er das Bild nachladen und anzeigen soll.

RooT314 1. Apr 2015 16:03

AW: Hilfe mit Delphi [idhttp.get error]
 
Zitat:

Zitat von Jumpy (Beitrag 1295822)
In der Regel ist das ja so, dass die Bilder kein Teil der HTML-Datei sind. Stattdessen steht in der HTML-Datei ja eine URL oder so des Bildes in einem Image-Tag, was dem Browser sagt, dass er das Bild nachladen und anzeigen soll.

Gibt es eine möglichkeit dem Programm zu sagen, dass er die mit Downloaden soll ?

Oder vllt mit einem anderen Code Komponente ?

Gruß RooT

Sir Rufo 1. Apr 2015 16:09

AW: Hilfe mit Delphi [idhttp.get error]
 
Zitat:

Zitat von RooT314 (Beitrag 1295825)
Zitat:

Zitat von Jumpy (Beitrag 1295822)
In der Regel ist das ja so, dass die Bilder kein Teil der HTML-Datei sind. Stattdessen steht in der HTML-Datei ja eine URL oder so des Bildes in einem Image-Tag, was dem Browser sagt, dass er das Bild nachladen und anzeigen soll.

Gibt es eine möglichkeit dem Programm zu sagen, dass er die mit Downloaden soll ?

Oder vllt mit einem anderen Code Komponente ?

Gruß RooT

Mach es doch so wie die Browser das machen:
  • HTML-Datei laden
  • Alle Ressource-Links heraussuchen und laden

RooT314 1. Apr 2015 16:16

AW: Hilfe mit Delphi [idhttp.get error]
 
Zitat:

Zitat von Sir Rufo (Beitrag 1295826)
Zitat:

Zitat von RooT314 (Beitrag 1295825)
Zitat:

Zitat von Jumpy (Beitrag 1295822)
In der Regel ist das ja so, dass die Bilder kein Teil der HTML-Datei sind. Stattdessen steht in der HTML-Datei ja eine URL oder so des Bildes in einem Image-Tag, was dem Browser sagt, dass er das Bild nachladen und anzeigen soll.

Gibt es eine möglichkeit dem Programm zu sagen, dass er die mit Downloaden soll ?

Oder vllt mit einem anderen Code Komponente ?

Gruß RooT

Mach es doch so wie die Browser das machen:
  • HTML-Datei laden
  • Alle Ressource-Links heraussuchen und laden

Hört sich ja ganz gut an dann müsste ich doch aber die Html datei auf die bilder zuweisen (da die normale HTML datei keine ahnung hat wo sich die Bilder befinden) und dies erschwert das letztendliche umwandeln in eine PDF nur noch mehr ?

Korrigiert mich bitte falls ich falsch liege :)

Gruß RooT

Olli73 1. Apr 2015 16:35

AW: Hilfe mit Delphi [idhttp.get error]
 
Zitat:

Zitat von RooT314 (Beitrag 1295830)
Hört sich ja ganz gut an dann müsste ich doch aber die Html datei auf die bilder zuweisen (da die normale HTML datei keine ahnung hat wo sich die Bilder befinden)

Du hast du grundsätzlich 3 Möglichkeiten:

- Die <img>-Tags in der HTML-Datei entsprechend anpassen (wie du geschrieben hast)
- die gleiche Verzeichnisstruktur wie auf dem Server verwenden (nur möglich wenn die Site ausschließlich relative Pfadangaben nutzt)
- Data-URIs verwenden (und die ebenfalls in die HTML-Datei packen)

RooT314 1. Apr 2015 16:39

AW: Hilfe mit Delphi [idhttp.get error]
 
Zitat:

Zitat von Olli73 (Beitrag 1295835)
Zitat:

Zitat von RooT314 (Beitrag 1295830)
Hört sich ja ganz gut an dann müsste ich doch aber die Html datei auf die bilder zuweisen (da die normale HTML datei keine ahnung hat wo sich die Bilder befinden)

Du hast du grundsätzlich 3 Möglichkeiten:

- Die <img>-Tags in der HTML-Datei entsprechend anpassen (wie du geschrieben hast)
- die gleiche Verzeichnisstruktur wie auf dem Server verwenden (nur möglich wenn die Site ausschließlich relative Pfadangaben nutzt)
- Data-URIs verwenden (und die ebenfalls in die HTML-Datei packen)

Danke für die Auflistung ! Als anfänger hab ich leider noch nicht viel erfahrungen damit gemacht haben sie vllt. ein paar beispiel codes oder Tutorials die eine der 3 möglichkeiten näher erläutern :) ?

Gruß RooT

Olli73 1. Apr 2015 16:49

AW: Hilfe mit Delphi [idhttp.get error]
 
Beispielcode habe ich leider keinen. Im Prinzip musst du die HTML-Datei nach <img> Tags durchsuchen, darin findest du z.B. ein "src=EinBild.jpg"; dieses musst du dann ebenfalls downloaden und ggf. das "src=..." in der HTML-Datei entsprechend anpassen.

Was willst du eigentlich erreichen? Du schreibst oben etwas von "nach PDF konvertieren", da gibt es aber auch schon fertige Onlinedienste...

RooT314 1. Apr 2015 17:00

AW: Hilfe mit Delphi [idhttp.get error]
 
Zitat:

Zitat von Olli73 (Beitrag 1295842)
Beispielcode habe ich leider keinen. Im Prinzip musst du die HTML-Datei nach <img> Tags durchsuchen, darin findest du z.B. ein "src=EinBild.jpg"; dieses musst du dann ebenfalls downloaden und ggf. das "src=..." in der HTML-Datei entsprechend anpassen.

Was willst du eigentlich erreichen? Du schreibst oben etwas von "nach PDF konvertieren", da gibt es aber auch schon fertige Onlinedienste...

hmm danke erstmal :) jedoch wirds dann später schwierig da ich nicht weiß ob der PDF Konvertierer die Bilder mit einbezieht weißt du wie das da ist ?

Möchte die Datei später mit einer selbst programmierten App auf ein Smartphone übertragen :)

Und da PDF Dateien so gut wie auf jedem Smartphone dargestellt werden können habe ich mich für dieses Format entschieden zudem ist es oftmals leichter zu lesen etc. :)

Gruß RooT

Olli73 1. Apr 2015 17:06

AW: Hilfe mit Delphi [idhttp.get error]
 
Zitat:

Zitat von RooT314 (Beitrag 1295845)
jedoch wirds dann später schwierig da ich nicht weiß ob der PDF Konvertierer die Bilder mit einbezieht weißt du wie das da ist ?

Da ich nicht weiß, welchen "PDF-Konvertierer" du meinst, kann ich dazu nicht viel sagen, aber normalerweise sollte das kein Problem sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:59 Uhr.
Seite 3 von 3     123   

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