AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke HTML einer URL ohne TWebBrowser und Indys

HTML einer URL ohne TWebBrowser und Indys

Ein Thema von Schwedenbitter · begonnen am 15. Nov 2010 · letzter Beitrag vom 16. Nov 2010
Antwort Antwort
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

AW: HTML einer URL ohne TWebBrowser und Indys

  Alt 15. Nov 2010, 19:37
Eigentlich wollte ich darauf hinweisen, dass man bessr sprechende Konstanten verwenden sollte.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: HTML einer URL ohne TWebBrowser und Indys

  Alt 15. Nov 2010, 19:58
ich hätte hier noch eine Version die kein Problem mit Unicode hat.
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation
uses ExtActns;
{$R *.dfm}
Function GetTempDir:String;
var
p:Pchar;
begin
  p:=stralloc(255);
  GetTempPath(255,p);
  Result:=p;
  strdispose(p);
end;

Function MakeSaveURL(const AURL:String):String;
begin
  if Pos('http',LowerCase(AURL))=0 then Result := 'http://' +AURL else Result := AURL;
end;


function DownloadURLToFile(const AURL, AFileName : TFileName) : boolean;
begin
  Result:=True;

  with TDownLoadURL.Create(nil) do
  try
    URL := MakeSaveURL(AURL);
    Filename := AFileName;
    try
      ExecuteTarget(nil);
    except
      Result:=False;
    end;
  finally
    Free;
  end;
end;


Function GetURLContentAsString(const AURL:String;Var OK:Boolean):String;
var
  sl:TStringList;
  tmpf:String;
begin
  sl:=TStringList.Create;
  OK := false;
  try
  tmpf := IncludeTrailingBackSlash(gettempdir) + FormatDateTime('~hh_zzz',now) + '.tmp';
  if DownloadURLToFile(AURL,tmpf) then
    begin
       sl.LoadFromFile(tmpf);
       deletefile(PChar(tmpf));
       Result := sl.Text;
       ok := true;
    end;
  finally
   sl.Free;
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
  b:Boolean;
begin
    Memo1.Text := GetURLContentAsString('http://twitter.com/#!/bummi_w',b);
end;

end.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#3

AW: HTML einer URL ohne TWebBrowser und Indys

  Alt 16. Nov 2010, 08:50
Zunächst einmal Danke für Eure zahlreichen Hinweise/Vorschläge!

Ich hatte vergessen zu erwähnen, dass ich natürlich ein Polling machen muss/will. Die TK-Anlage meldet sich leider nicht, wenn ein neues Fax eingegangen ist. Aus diesem Grunde muss ich immer wieder nachsehen.
Die Standard-Software, zur der ich nicht wirklich positives berichten kann, macht ein Polling aller 3 Sekunden. Das hatte ich übernommen und festgestellt, dass es über TWebBrowser eben wegen der Resourcen nicht machbar ist.

@Klaus01
Der Code sieht schon einmal gut aus. Er tut was er soll, auch wenn z.B. 2 Variablen nicht benutzt werden (hRequest : hInternet und datalen : Cardinal). Danke dafür. Ich hatte auch schon gesucht, war aber darauf nicht gestoßen.
Ich werde mal ausgiebig testen, ob sich das zum Pollen eignet.

@Luckie
Du hast Recht in Bezug auf die Konstante. [AUSREDE] Aber ich bin/war am Testen und habe den Code einfach quick und dirty aus mehreren Fundstellen zusammengesucht und "gesäubert".[/AUSREDE] Dann kommt eben so etwas raus. In meinem Programm werde ich später im sauberen Code für meine Nachfolger die Konstante verwenden; ich schwöre.

@Bummi
Den Code habe ich schon. Trotzdem Danke. Ich benutze ihn aber eben wegen des Polling nicht. Das Schreiben auf die Platte ist das langsamste von allem.

Ziel ist es später, meine App in eine vorhandene Server-Software zu integrieren, über die unsere gesamte Bürokommunikation läuft. Das muss skalierbar bleiben und muss daher auf das Schonen von Resourcen getrimmt werden. Natürlich will ich das Ganze in einen Thread auslagern. Aber schon der Grund-Code sollte schlank und schnell sein.
Wenn ich das könnte, würde ich mich in Assembler oder so probieren...

Nochmals Danke.
Alex Winzer
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: HTML einer URL ohne TWebBrowser und Indys

  Alt 16. Nov 2010, 09:57
Mal bei den Indy's suchen?
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#5

AW: HTML einer URL ohne TWebBrowser und Indys

  Alt 16. Nov 2010, 17:41
Die Standard-Software, zur der ich nicht wirklich positives berichten kann, macht ein Polling aller 3 Sekunden.
Da lohnt es sich evtl. zu gucken, ob die Standardanwendung nicht irgendwelche URLs aufruft, wo die Inhalte besser aufbereitet sind (kein HTML/JavaScript).
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#6

AW: HTML einer URL ohne TWebBrowser und Indys

  Alt 16. Nov 2010, 19:28
Da lohnt es sich evtl. zu gucken, ob die Standardanwendung nicht irgendwelche URLs aufruft, wo die Inhalte besser aufbereitet sind (kein HTML/JavaScript).
Einfache Antwort: Nö!
Die Standardanwendung - und deshalb finde ich die ja so sinnlos - macht noch nicht einmal das Polling. Das Polling steht im html-Code und wird auch ausgeführt, wenn ich das Webinterface im IE oder Firefox öffne. Der Code der Standardsoftware sähr in Delphi so aus:
Delphi-Quellcode:
unit Unit1;

interface

uses Classes, Controls, Forms, OleCtrls, SHDocVw;

type
  TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
    procedure FormCreate(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  WebBrowser1.Navigate('http://192.168.1.2/app-main.asp?app=3');
end;

end.
Ein 25zeiler eben fast ohne weitere Funktionen. Lediglich das SysMenu wurde um einen Eintrag "About" erweitert. Das hat bestimmt lange gedauert Es wäre wiedersinnig, besser aufbereitete Inhalte abzurufen, wenn man das dann nicht nutzt und einfach nur den für alle abrufbaren html-Code anzeigen lässt.
Alex Winzer
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 11:16 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