AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe mit Delphi [idhttp.get error]

Ein Thema von RooT314 · begonnen am 31. Mär 2015 · letzter Beitrag vom 1. Apr 2015
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Hilfe mit Delphi [idhttp.get error]

  Alt 1. Apr 2015, 10:41
Echt jetzt? Aprilscherz?
Wenn  S := Feld.DataSet.CreateBlobStream(Feld, bmRead); scheitert geht er nach except und danach nach finaly. Dort veursacht FileS.Free ebenfalls eine Exception falls nicht zufällig mit nil initiiert. Deshalb hat Sir Rufo FileS erst mal nil gesetzt. Alternativ kann man auch 2 try finally Blöcke nehmen.
Jupp, allerdings ist es nicht ratsam (wegen der Lesbarkeit) für jeden und alles einen eigenen try finally Block zu nehmen, denn dann sieht man irgendwann den Wald vor lauter Bäumen (try und Einrückungen) nicht mehr

Und schreibfaul bin ich auch noch
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
RooT314
(Gast)

n/a Beiträge
 
#2

AW: Hilfe mit Delphi [idhttp.get error]

  Alt 1. Apr 2015, 11:20
Hallo Leute !

Erstmal danke für eure zahlreichen Antwroten !

Ich werde mir die gelisteten Tipps von himitsu raussuchen und so gut wie es geht beheben !

Jedoch habe ich als Anfänger gerade einmal die hälfte Verstanden

Ich werde im Verlaufe des Tages Updates posten

@himitsu : Sie meinten das dir kein path sein soll ? Was soll den Dir sonst sein ? versteh ich nicht ganz Und das mit dem TOpenDialog habe auch nach dem Lesen im Wiki nicht verstanden

Gruß RooT

Geändert von RooT314 ( 1. Apr 2015 um 11:28 Uhr)
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#3

AW: Hilfe mit Delphi [idhttp.get error]

  Alt 1. Apr 2015, 12:48
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Hilfe mit Delphi [idhttp.get error]

  Alt 1. Apr 2015, 12:59
Path: C:\Programme\ = etwas in dem Verzeichnis (Pfadangabe für eine Datei/Verzeichnis zum Anhängen, also mit abschließendem PathDelimiter)
Directory, bzw. Pathname: C:\Programme = das Verzeichnis selber (der Verzeichnisname, also ohne abschließenden PathDelimiter)
Filepath: C:\Programme\Meine.exe = eine bestimmte Datei (inkl. Pfad)
Filename: Meine.exe = irgendeine Datei (ohne Pfad)

SaveToFile benötigt einen FileName, aber idealer Weise besser einen kompletten FilePath
Du schreibst aber erstmal einem Path in die Variable und der Auswahldialog wählt dann nur ein Verzeichnis (Dir).



PS: '\', oder Delphi-Referenz durchsuchenPathDelim, Delphi-Referenz durchsuchenTPath.DirectorySeparatorChar oder besser mit Delphi-Referenz durchsuchenTPath.Combine .
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 1. Apr 2015 um 13:21 Uhr)
  Mit Zitat antworten Zitat
RooT314
(Gast)

n/a Beiträge
 
#5

AW: Hilfe mit Delphi [idhttp.get error]

  Alt 1. Apr 2015, 13:05
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ß

Geändert von RooT314 ( 1. Apr 2015 um 13:38 Uhr)
  Mit Zitat antworten Zitat
Jumpy
Online

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.739 Beiträge
 
Delphi 6 Enterprise
 
#6

AW: Hilfe mit Delphi [idhttp.get error]

  Alt 1. Apr 2015, 15:48
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.
Ralph
  Mit Zitat antworten Zitat
RooT314
(Gast)

n/a Beiträge
 
#7

AW: Hilfe mit Delphi [idhttp.get error]

  Alt 1. Apr 2015, 16:03
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
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Hilfe mit Delphi [idhttp.get error]

  Alt 1. Apr 2015, 16:09
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
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  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:57 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