Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Text aus einer HTML-Datei einlesen? (https://www.delphipraxis.net/54599-text-aus-einer-html-datei-einlesen.html)

Chrissi91 7. Okt 2005 12:29


Text aus einer HTML-Datei einlesen?
 
Hallo,
mein Problem ist folgendes:

Ist es möglich, aus einer Website , die nur aus reinem Text besteht, mit Delphi den Text einzulesen? Ich möchte gerne, dass beim Programmstart ein Text in ein Memofeld eingefügt wird, der bei bestehender Internetverbindung aus einer bestimmten Website gelsen wird.

Danke schon Mal im Vorraus

Chrissi

jim_raynor 7. Okt 2005 12:42

Re: Text aus einer HTML-Datei einlesen?
 
Was ist denn dein Problem. Wenn du Dateien herunterladen möchtest, dann wirst du hier auf jeden Fall fündig.

Gute Stichworte wären zum Beispiel: Hier im Forum suchenDatei downloaden [/dp]URLDownloadToFile[dp]

BeerBear 7. Okt 2005 12:50

Re: Text aus einer HTML-Datei einlesen?
 
Erst runterladen s.o.
und dann
Delphi-Quellcode:
Memo1.Lines.LoadFromFile( 'C:\....' );
:freak:

marabu 7. Okt 2005 12:54

Re: Text aus einer HTML-Datei einlesen?
 
Oder gleich so:

Delphi-Quellcode:
const
  urlText: string = 'http://deinhost/deinedatei.txt';

procedure TWebForm.TextButtonClick(Sender: TObject);
var
  s: TStream;
begin
  s := TMemoryStream.Create;
  try
    http.Get(urlText, s);
    s.Position := 0;
    Memo.Lines.LoadFromStream(s);
  finally
    s.Free;
  end;
end;
Grüße vom marabu

BeerBear 7. Okt 2005 13:26

Re: Text aus einer HTML-Datei einlesen?
 
Oder so.

TStringlist 7. Okt 2005 13:28

Re: Text aus einer HTML-Datei einlesen?
 
bzw. so:

Delphi-Quellcode:
const
  urlText: string = 'http://deinhost/deinedatei.txt';

procedure TWebForm.TextButtonClick(Sender: TObject);
begin
  try
    Memo1.Lines.Text := IdHTTP1.Get(urlText);
  except
    showMessage('ging nicht!');
  end;
end;

Chrissi91 7. Okt 2005 15:25

Re: Text aus einer HTML-Datei einlesen?
 
:firejump: Danke! Werde es nachher ausprobieren.

Chrissi91 7. Okt 2005 20:07

Re: Text aus einer HTML-Datei einlesen?
 
Irgendwie funktionieren die Versionen nicht!

1. Problem:

Wenn ich als URL http://www.angegebene_seite.de angebe, geht es nicht, da Delphi das // als Kommentar sieht und denn dort nur steht http: (Der Rest zählt dann nur noch als Kommentar)!

2. Problem

Braucht man dazu Zusatzkomponenten? Folgende Problem:


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 declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

const
  urlText: string = 'http://chrissi1991.ch.ohost.de/update.txt';

procedure TForm1.Button1Click(Sender: TObject);
var
  s: TStream;
begin
  s := TMemoryStream.Create;
  try
    http.Get(urlText, s);
    s.Position := 0;
    Memo1.Lines.LoadFromStream(s);
  finally
    s.Free;
  end;
end;

end.
Fehlermeldung: [Error] Unit1.pas(36): Undeclared identifier: 'http'

In Sachen Internet mit Delphi bin ich der absolute Anfänger :D

TStringlist 7. Okt 2005 20:24

Re: Text aus einer HTML-Datei einlesen?
 
Wahrscheinlich lieg es daran, dass du ja auch überhaupt noch gar keine IdHTTP-Komponente auf deine Form gezogen hast. Im Deklarationsteil von TForm1 sehe ich sie jedenfalls nicht.

raffo 7. Okt 2005 20:26

Re: Text aus einer HTML-Datei einlesen?
 
Einfach nur http.... zu sagen reicht nicht, du brauchst ne unit dafür (da ist bei dir nix eingebunden) oder du verwendest httpget (gibts als compo) frei zuladen.

Chrissi91 7. Okt 2005 20:32

Re: Text aus einer HTML-Datei einlesen?
 
Ich verstehe nur Bahnhof! ;) Wie gesagt, ich bin der totale Noob in Sachen Internet bezogen auf Delphi ... Ich glaube, ich lasse das lieber :(

TStringlist 7. Okt 2005 20:37

Re: Text aus einer HTML-Datei einlesen?
 
Um Aktionen im Internet ausführen zu können, benötigst du die Indy-Komponenten. Diese sollten also zu diesem Zwecke erstmal in der Palette vorhanden sein. Wenn nicht, dann musst du sie dir zuerst downloaden bzw. installieren.

raffo 7. Okt 2005 21:22

Re: Text aus einer HTML-Datei einlesen?
 
Für dieses kleine Vorhaben, finde ich die kleine Komponente HttpGet wirklich ausreichend, auch wenn Indy "alles" kann, man kann HttpGet es hier herunterladen http://delphi.icm.edu.pl/ftp/d20free/HTTPGet.zip

Auch wenn der Link D2 vermutet, läuft es auch auf D5, die Kompo installieren, damit läst sich einfach eine HTML Seite (URL) auf den lokalen PC speichern.

Chrissi91 8. Okt 2005 07:58

Re: Text aus einer HTML-Datei einlesen?
 
Delphi-Quellcode:
unit Unit1;

interface

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

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

var
  Form1: TForm1;

implementation

{$R *.dfm}
const
  urlText: string = 'http://chrissi1991.ch.ohost.de/update.txt';

procedure TForm1.Button1Click(Sender: TObject);
var
  s: TStream;
begin
  s := TMemoryStream.Create;
  try
    http.Get(urlText, s);
    s.Position := 0;
    Memo1.Lines.LoadFromStream(s);
  finally
    s.Free;
 end;
end;
end.

Weiterhin: [Error] Unit1.pas(36): Undeclared identifier: 'http'

teebee 8. Okt 2005 09:07

Re: Text aus einer HTML-Datei einlesen?
 
Entweder schreibst Du im Quelltext
Delphi-Quellcode:
HTTPGet1.Get(urlText, s);
oder Du benennst HTTPGet1 im Objektinspektor bei 'Name' in http um.

Gruß, teebee

raffo 8. Okt 2005 09:17

Re: Text aus einer HTML-Datei einlesen?
 
HttpGet funzt anders:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
HTTPGet1.URL:='http://www.meineseite.de/index.htm';
HTTPGet1.FileName:='C:\ZielPfad\Zieldatei.extension';

//Gauge1.progress:=0;  // wenn Du noch nen Gauge verwendest kann der Download kontrolliert werden
//Gauge1.Visible:=true; // in "onDoneFile" kann das Gauge wieder invisible gemacht werden

httpGet1.GetFile;
end;
Das Laden kann auch abgebrochen werden =>

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
HTTPGet1.Abort;
end;
Aktualisierung des Gauge

Delphi-Quellcode:
procedure TForm1.HTTPGet1Progress(Sender: TObject; TotalSize,
  Readed: Integer);
begin
gauge1.MaxValue:=totalsize; // auf der Kompo in EREIGNISSE "onProgress" hier eintragen
gauge1.Progress:=readed;
end;

TStringlist 8. Okt 2005 11:52

Re: Text aus einer HTML-Datei einlesen?
 
Ansonsten aber, lass dich nicht davon abhalten, dir gleich die Hier im Forum suchenIndy-Komponenten zu besorgen. Früher oder später brauchst du die sowieso. Hier nochmal ein Link zum Downloaden. Und bei diesbezüglich auftauchenden Fragen hilft man im hiesigen DP-Forum "Internet / LAN / ASP.NET" bestimmt gerne :wink:

Chrissi91 8. Okt 2005 11:54

Re: Text aus einer HTML-Datei einlesen?
 
Danke! Ich habe den Code aus dem mitgedownloadeten Beispiel übernommen und verwendet ... ;)

ätte ich auch gleich drauf kommen können. Aber damit ibts auch Probleme, also ich mede mich heute bestimmt noch mal ... ;)

Chrissi91 8. Okt 2005 15:32

Re: Text aus einer HTML-Datei einlesen?
 
Gut! Noch eine Frage :-D Wie lautet der Befehl zum Downloaden einer Datei mit idhttp ...
Kann es sein, dass bei Delphi 7 PE nur eine maximale Anzahl an Komponenten installiert sein kann?

PierreB 8. Okt 2005 15:36

Re: Text aus einer HTML-Datei einlesen?
 
Zitat:

Zitat von Chrissi91
Gut! Noch eine Frage :-D Wie lautet der Befehl zum Downloaden einer Datei mit idhttp ...

Guck dir doch einfach mal die Indy Befehlsreferenz an oder such mal in der DP. :roll:

Selbst wenn dir einer den Befehl sagt, fragst du danach ja eh wie man diesen anwendet, also such mal im Forum, hatten wir schon oft. ;)

Chrissi91 8. Okt 2005 15:43

Re: Text aus einer HTML-Datei einlesen?
 
Hab ich auch gemacht, aber ich will eben nur downloaden und nichts mit filestreem und so ... :-D

Delphi-Quellcode:
responseStream := TFileStream.Create('C:\datei.exe', fmCreate);
IdHTTP1.Get('http://www.test.de/datei.exe', responseStream);
ich versteh hier z.B. nicht, wozu response und so wieter ist ... die 2. zeile verstehe ich ja ;)

TStringlist 8. Okt 2005 18:13

Re: Text aus einer HTML-Datei einlesen?
 
Die Methode IdHTTP1.Get kannst du sowohl als Procedure alsauch als Funktion vom Typ String benutzen.

Im Fall1 (als Procedure) muss der zweite Parameter ein Stream sein, in den die Komponente den vom Server dann geantworteten Text ablegt (response = Antwort).

Im Fall2 (als Funktion) gibt es nur einen einzigen Parameter, nämlich nur die URL. Hier wird das was die Komponente vom Server zugeschickt bekommt einfach gleich auf einen String übertragen (eben wie bei einer ganz normalen Wertezuweisung auch).

Beide Beispiele sind hier übrigens in diesem Thread auch schonmal gestern kurz aufgetaucht.
Das Procedure-Beispiel in marabu's post um 13:54 und das Funktion-Beispiel in meinem post um 14:28.

Chrissi91 9. Okt 2005 12:59

Re: Text aus einer HTML-Datei einlesen?
 
Gut ... soweit alles klar ...

Ich habe schon mal in der Delphi - Hilfe über die Indy - Komponenten informiert. Nun wollte ich es fragen, ob ich mit diesen Komponenten auf meinen FTP-Server zugreifen kann ... Da zu jeder Komponente nur 2 Sätze standen und nicht mehr, bin ich im Moment ziehmlich ratlos. Wenn man auf einen FTP server zugreifen könnte, per Adresse (z.B. http://username.us.ohost.de), kann ich dann auch darauf Dateien schreiben?

TStringlist 9. Okt 2005 14:13

Re: Text aus einer HTML-Datei einlesen?
 
Natürlich kann man das. Diesbezüglich weiterführenden Fragen stellst du dann event. aber besser nochmal im DP-Internet-Forum. Vorab kannst du dich aber auch schon mal etwas per Suchfunktion (Hier im Forum suchenTIdFTP-Server) darüber informieren. Gut möglich, dass da auch schon eine passende Antwort für dich dabei ist.


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