![]() |
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 |
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: ![]() |
Re: Text aus einer HTML-Datei einlesen?
Erst runterladen s.o.
und dann
Delphi-Quellcode:
:freak:
Memo1.Lines.LoadFromFile( 'C:\....' );
|
Re: Text aus einer HTML-Datei einlesen?
Oder gleich so:
Delphi-Quellcode:
Grüße vom marabu
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; |
Re: Text aus einer HTML-Datei einlesen?
Oder so.
|
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; |
Re: Text aus einer HTML-Datei einlesen?
:firejump: Danke! Werde es nachher ausprobieren.
|
Re: Text aus einer HTML-Datei einlesen?
Irgendwie funktionieren die Versionen nicht!
1. Problem: Wenn ich als URL ![]() 2. Problem Braucht man dazu Zusatzkomponenten? Folgende Problem:
Delphi-Quellcode:
Fehlermeldung: [Error] Unit1.pas(36): Undeclared identifier: 'http'
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. In Sachen Internet mit Delphi bin ich der absolute Anfänger :D |
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.
|
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.
|
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 :(
|
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.
|
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
![]() 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. |
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' |
Re: Text aus einer HTML-Datei einlesen?
Entweder schreibst Du im Quelltext
Delphi-Quellcode:
oder Du benennst HTTPGet1 im Objektinspektor bei 'Name' in http um.
HTTPGet1.Get(urlText, s);
Gruß, teebee |
Re: Text aus einer HTML-Datei einlesen?
HttpGet funzt anders:
Delphi-Quellcode:
Das Laden kann auch abgebrochen werden =>
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;
Delphi-Quellcode:
Aktualisierung des Gauge
procedure TForm1.Button2Click(Sender: TObject);
begin HTTPGet1.Abort; end;
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; |
Re: Text aus einer HTML-Datei einlesen?
Ansonsten aber, lass dich nicht davon abhalten, dir gleich die
![]() ![]() |
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 ... ;) |
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? |
Re: Text aus einer HTML-Datei einlesen?
Zitat:
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. ;) |
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:
ich versteh hier z.B. nicht, wozu response und so wieter ist ... die 2. zeile verstehe ich ja ;)
responseStream := TFileStream.Create('C:\datei.exe', fmCreate);
IdHTTP1.Get('http://www.test.de/datei.exe', responseStream); |
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. |
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. ![]() |
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 (
![]() |
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