![]() |
Position von Text/Links in einer HTML Datei finden
Moin zusammen,
ich such mich jetzt schon 2 Wochen bucklig nach einer Möglichkeit den Text einer HTML Datei (Plaintext) nicht nur raus zu filtern, sondern auch die Position der einzelnen Texte (Position des ersten Buchstabens im String). Grund ist der, das ich für eine Webabfrage eine HTML Datei analysieren will/muss. Dazu muss ich wissen an welcher Position ein Text/Link in der HTML Datei ist. Ich krepel mir schon ein ab eine eigene while Schleife zu basteln, doch es gibt einfach zu viele Ausnahmen. Habt ihr vielleicht für mich einen kleinen Tipp wonach ich noch so suchen kann/einlesen sollte? Habt Dank vorab :-D Hiele |
Re: Position von Text/Links in einer HTML Datei finden
Hallo,
irgendwie habe ich das Gefühl, dass dieser Thread für dich interessant sein könnte: ![]() Grüße vom marabu |
Re: Position von Text/Links in einer HTML Datei finden
Hi marabu,
danke für deine erste Hilfe - wie schon öffters :oops: :-D Diese Funktion nutze ich auch schon um die Links zu ermitteln. Aber sie hilft mir nicht den Text mit Posion zu finden. Vielleicht habe ich auch zu wenig Grundlagen vermittelt. Also: 1. Es gibt einen LinuxServer von Gira für Hausautomatisierung 2. Dieser kann Webabfragen durchführen um z.B. Wetterdaten aus dem Internet für die Visualisierung bereit zu halten. 3. Um so eine Webabfrage für den Server zu erstellen, muss der User kompliziert den Quelltext einer HTML Datei durchfosten um die Stelle zu finden die der Server ein eine Variable schreiben soll. 4. Grundlegend funktioniert es folgendermaßen: a. Öffne Website b. Lese soviele beliebige Anzahl an Daten (Zeichen) bis du folgende Zeichenkette findest (z.B. 'href="') c. Dann speichere folgende Zeichen in Variable X d. ... bis du folgende Zeichen findest (z.B. '">') 5. Um jetzt, wie im unternen Beispiel an Quelltext den zweiten Link zu finden (default.html) muss der User bei der Abfrage darauf achten, dass er wie in b. beschrieben eine "Finde Vorgabe", machte die bis zum Zweiten Link eindeutig ist. Hier: 'target="Hauptframe2" href="' 6. Ich möchte es dem User leicht machen und eine Webabfrage ohne Quelltext Durchsuchung zu erstellen. Dafür soll eine Liste erstellt werden mit den Plaintexten und Links und Bilder, die dann per Drag&Drop ausgesucht werden. Das Programm erstellt dann die Abfrage automatisch für den Server. Damit dann die Abfrage erstellt werden kann, muss das Programm den Quelltest nach dem gewünschten durchsuchen den Vor und Nachtext finden und sicherstellen, das der Vortext eindeutig und "unique" ist. Nur Beispiel:
Delphi-Quellcode:
Hoffe ist jetzt etwas klarer.
<BODY ID="index">
<CENTER> <TABLE style="height:54px;" cellspacing="0" cellpadding="0" border="0"> <TR><TD valign="middle"> <TABLE style="width:720px;" cellspacing="0" cellpadding="0" border="0"> <TR> <TD style="width:31px;"> <a target="Hauptframe1" href="default1.html" onmouseover="document.up.src=up1.src" onmouseout="document.up.src=up0.src" target="_parent"> [img]res/up.gif[/img]</a></TD> <TD style="width:20px;" align="center"> [img]res/hdr_left.gif[/img]</TD> <TD align="center" valign="middle" style="background:url('res/hdr_mid.gif');" class="title" nowrap="nowrap"> [url="default2.html"]hiele.de[/url] </TD> <TD style="width:20px;"> Für eine Lösung biete ich eine Flasche guten Wein. (Zeigt meine Verzweifelung :? ) Gruß Hiele |
Re: Position von Text/Links in einer HTML Datei finden
Hallo Hiele,
ich fürchte ich verstehe noch nicht ganz. Du möchtest eine Programmfunktion anbieten, mit der ein Benutzer eine beliebige selbstgeschriebene HTML-Seite einlesen kann, dann eine Liste der Links abgeboten bekommt und dort einen Link auswählen kann, der durch eine Abfrage bei einem Wetterdienst ersetzt wird? Freundliche Grüße |
Re: Position von Text/Links in einer HTML Datei finden
Hi marabu,
... fast. Normalerweise muss der Benutzer für eine Webabfrage (egal welche Seite er abfragen möchte) z.B. wetter.com, den Quelltext per Hand durchforsten um die Abfrage wie oben beschrieben Punkt 4 a-d zu erstellen. Also wenn er z.B. die aktuelle Temperatur in eine Variable packen will, um sie auf der Visu anzuzeigen, erstellt er eine Abfrage nach dem Schema: Durchsuch den Quelltext von ![]() dann speichere die Daten die folgen in der Variable bis zur Stelle </span> Sprich das Programm muss den Quelltext von Anfang an durchsuchen, bis die gewünschte Information (hier die Tagestemp.) gefunden wurde (Der Benutzer sagt ja meinem Programm, was er ermittel will, da das Programm vorher die Website analysiert und dem Benutzer alle sinnvollen Information (Texte Bilder Links etc.) zusammenstellt) Um diesen Wert/Text nun für den Server im Quelltext auffindbar zu machen, muss in der Abfrage der Teil vor und nach der gewünschten Information in der Abfrage gespeichert sein. Mein Programm bekommt also die Info: Ich will den Tempwert. Daraufhin sucht sich mein Programm den Teil vor und nach aus dem Quelltext und stellt sicher das der Quelltext vor der gewünschten Info (Tempwert) nicht im oberen Teil des Quelltext nochmal vorkommt. Sonst würde ja die Abfrage dort schon beginnen Daten in die Variable zu speichern. Es ist also wichtig für mich, nicht nur den Plaintext einer HTML Datei heraus zufiltern (ist ja eher einfach), sondern auch wo diese Texte sich im Quelltext befinden. Klarer :?: Gruß Hiele |
Re: Position von Text/Links in einer HTML Datei finden
Hallo Hiele,
ich merke schon, dass du dich bemühst alles gut zu beschreiben, aber vielleicht bin ja ich heute nicht so gut drauf. Kann es sein, dass du einfach die aktuelle Temperatur von irgendeinem Wetterdienst auslesen möchtest?
Delphi-Quellcode:
Sorry, wenn ich heute etwas begriffsstutzig bin.
const
W_URL = 'http://www.accuweather.com/world-index-forecast.asp' + '?partner=accuweather&traveler=0&loccode=EUR|DE|GM007|LIMBURG'; W_ID = 'quicklook_current_temps'; function CurrentTemperature(const urlWeather, tempId: string): string; var doc: OleVariant; begin doc := CoHtmlDocument.Create; doc.open; doc.Write(http.Get(urlWeather)); doc.Close; Result := doc.all.item(tempId).innerText; end; Freundliche Grüße |
Re: Position von Text/Links in einer HTML Datei finden
Hallo Hiele,
ich vermute Du möchtest den HTML-Quelltext parsen. Hierzu gibt es eine Komponente die rasend schnell, jedoch nicht ganz trivial zu verstehen ist. Vielleicht hilft Dir diese weiter: ![]() Ich verwende diesen für alle Arten von HTML und XML Parsing (und HTML Redesign). Grüße Michael |
Re: Position von Text/Links in einer HTML Datei finden
Kein Problem - Immerhin nimmst du dir Zeit - Also dafür Danke vorab.
Es geht nicht im speziellen um Temperaturwerte. Sondern vielmehr darum bestimmte Teile aus dem Quelltext ein eine Variable zu bringen. Wenn der Nutzer z.B. die Akt. Lottozahlen will, dann wird dem Giraserver eben die gewünschte Website mitgeteilt, der sich dann den Quelltext der HTML Datei lädt und diesen nach dem Abfrageschema ausliest. Um so ein Abfrage-Schema zu erstellen, wird dem Server zuvor gesagt, welche Website und wie er die gewünschte information findet. Lade den Quelltext von ![]() Lese von Anfang des Datei bis du folgende Stelle findest (Also der Teil vor der gewünschten Info) Dann pack den gefundenen Text in die Variable X , bis zu der Stelle die im Quelltext nach der gewünschten Info kommt. Der eigentliche Parser ist im Giraserver. Um den für diese Abfrage zu konfigurenen muss ein Script erstellt werden. Und dieses erstellen des Scriptes ist sehr aufwendig. Meine Prog sollt einfach diese Scripterstellung vereinfachen. Nach dem Prinzip WYSIWYG. @Michael: Ich habe mich zwar schon mit div. Parsern beschäftigt, doch keiner hilft mir weiter bzgl. der Position, da ich einen Teil Quelltext vor und nach der gewünschten Info brauche Werde mir aber den auch nochmal zugemühte führen - Gedankt für den Tip Hiele |
Re: Position von Text/Links in einer HTML Datei finden
Du brauchst einen DOM (Document Object Modell) Parser.
Im DOM wird dir die gesamte Webseite als Baumstruktur aufbereitet. Absolute Positionen in HTML spielen dann keine Rolle mehr. Wenn du dann ein bestimmtes Element auswählen möchtest, kannst du entweder eine ralativ starre (*) Technik anwenden und einfach merken, an welchen Kreuzungen du im Baum abbiegen musst. Beispiel: /2/5/3 - von der Wurzel in das 2. Child-Element (<body>) dann in das 5. Child-Element und dann in das 3. Child-Element. *) selbst diese Technik dürfte besser als dein bisheriger Ansatz sein Du kannst auch den gesamten Restbaum (ausgehend vom <body> Element) nach einem bestimmten Text durchsuchen. Wird die Stelle gefunden, bist du irgendwo im Baum auf deinem gesuchten Element oder Attribut. Es ist dann kein Problem, sich im Baum dann eine Ebene hoch und dann zum vorherigen oder nachfolgenden Childelement zu bewegen. Oder es ist möglich mit XPATH Ausdrücken zu arbeiten. Das wäre dann der Königsweg. Hier gibt es allerdings das Problem, dass HTML üblicherweise nicht so sauber geschachtet ist wie das bei XML der Fall ist. Wenn die Seite aber in XHTML geschrieben ist, dann ist es relativ einfach, beliebige Daten sauber zu extrahieren. Ebenso kann dann die Seite leicht über die Baumstruktur verändert werden. PS: du solltest dir den Internet Explorer Developer Toolbar installieren. ![]() Er zeigt dir (unter anderem) die Baumstruktur und lässt selektierte Element blinken |
Re: Position von Text/Links in einer HTML Datei finden
@shmia: Mit DOM hatte ich auch am Anfang gespielt, jedoch der Parser der im GiraServer (Hausautom.)
läuft setzt für eine Webabfrage ein Script vorraus, welches dem integrierten Parser sagt, wo er welche Infos im Quelltext findet. Wie oben geschrieben, will ich ein Tool bauen, welches solche Scripte erstellt. Die meisten Benutzer kommen kaum zurecht, sich durch den Quelltext einer HTML Datei zu wuseln. So ein Script kann kann schnell meherere Hundert Anweisungen enthalten, die normalerweise per Hand ermittelt werde. Hier entstehen auch die meisten Fehler. Da man eine bestimmte Stelle im Quelltext haben möchte und dem Parser (Giraserver) sagt. Such die Stelle A(ein kurzer Auszug aus dem Quelltext) und dann speichere die folgenden Zeichen (z.B. Lottozahlen o.ä.) bis zur Stellte B (wieder ein kurzer Auszug aus dem Quelltext). Wenn jetzt aber die A mehrfach im Quelltext vorkommt, wird der Parser die erste Stelle nehmen an der er diesen Auszug A findet. Wenn nun dann nicht auch sicher B folgt führt dies schon zu Fehlern. Das Tool soll den Quelltext nach verwertbaren Infos durchsuchen (Texte/Bilder/Links) diese dann auflisten. Der Benutzer kann nun wählen was er will. Danach erstellt das Tool den Script um sicher zustellen, das es konform ist. Sucht also zur gewünschten Info die passenen Qulltextauschnitte Vor und Nach der Info. (Also A/B) und dies so, dass der Quelltext A (vor Info) sicher so gewählt ist, das der Parser der den Quelltext Zeichen für Zeichen durchgeht findet. Gruß Hiele |
Re: Position von Text/Links in einer HTML Datei finden
Hallo Hiele,
der Gira Home bzw. Facility Server liefert laut Hersteller Informationen über angeschlossene Installationen nicht nur als XHTML-Seite, sondern auch in einer Reihe von Formaten, die sich besser zur Weiterverarbeitung eignen, z.B. XML. Wäre das nicht ein Ansatz um an die Daten zu kommen? Ansonsten verstehe ich das von dir beschriebene Problem inzwischen so: Dein Programm soll das Auslesen von bestimmten Daten einer HTML-Seite ermöglichen, ohne dass der Benutzer den HTML-Quelltext analysieren muss. Nicht so klar ist mir die Rolle des Text-Parsers auf dem Gira Server. Wieso wird der überhaupt gebraucht? Ein eigenes Programm könnte die HTML-Seite im WebBrowser Control rendern und den gewünschten Text in vielen Fällen über einen Maus-Klick auswählen. Dazu muss über die IHTMLTxtRange-Schnittstelle das Element ermittelt werden, auf das mit der Maus geklickt wurde. Anschließend prüft man, ob das Element ein identifizierendes Attribut besitzt: name und id sind per se identifizierend, andere Attribute wie z.B. class müssen auf Eindeutigkeit geprüft werden. Diese Prüfung muss auf dem parentElement fortgesetzt werden, bis eine Eindeutigkeit vorliegt. Über den dabei aufgezeichneten Pfad kann man das Element dann später lokalisieren und den Text herausziehen. Freundliche Grüße |
Re: Position von Text/Links in einer HTML Datei finden
Moin marabu,
auf dem Server lassen sich keine Anwendungen installieren. Auf dem PC wird mit einer Software ein System konfiguriert welches dann komplett als "OS" auf den Server übertragen wird. Dieses "OS" enthält eben auch die Möglichkeit das nicht nur die Lichtsteuerung etc darüber läuft, sondern auch ein VISU PC (z.B. Touchscreen in der Wand) angesteuert wird. Diese zeigen dann Licht und Fensterzustände etc. Alle Informationen werden in sogenannten KO (Kommunikationsobjekte) oder iKO (Interne Kommunikationsobjekte) gespeichert und verarbeitet. So können Logiken erstellt und verarbeitet werden. Beispiel: Wenn KO "1/2/3" (Das KO für Lichtwert aussen) unter 5 Lux fällt aktiviere KO "2/3/4" (Das KO für Automatikschalter/Bewegungsmelder), damit bei einer festgestellten Bewegung das Licht nur angeht, wenn es draussen dunkel ist. Interne KO's nutzt der Server für diverse Informations speicherung. Eben auch für Werte die man mit dem HTML Parser aus Quelltexten (mit. o.g. Scripten) ermittelt um diese dann auf den VISU Seiten (ähnlich eines Webbrowsers) darstellen kann. Der einer will sich die Formel1 Ergebnisse anzeigen lassen. Der andere Wetterdaten oder das akt. Fernsehprogramm. Also wird ein Script für die Durchsuchung einer Webseite geschrieben, was diese Informationen dann in die iKO's schreibt, um sie dann auf dem Display anzuzeigen. Einen Webbrowser hat der Server nicht. Er kann auch nicht mit HTML direkt umgehen. Sondern nur beliebige Dateien Parsen und gewünschte Werte für die Verarbeitung in iKO's schreiben. Die Scripterstellung habe ich ja oben im groben beschrieben. Damit der Parser eben ein Wert findet , muss ihm gesagt werden was vor und nach dem gewünschten Wert/Text steht. Das macht es eben unabdingbar, das der Benutzer alle sinnvollen Informationen einer Page aufgelistet bekommt und für die Scripterstellung muss ich eben die Position (z.B. Wert beginnt bei 155'zigtem Zeichen im String) wissen. Nur dann kann ich die Quelltext nach den benötigten Zeichen durchsuchen. Gruß Hiele |
Re: Position von Text/Links in einer HTML Datei finden
Moin zusammen,
erstmal habt Dank für eure zahlreiche Hilfe oben. Ich habe jetzt selbst ein Parser gebastelt. Mit einer while Schleife. Da der Quelltext ja in einem Richedit liegt. NUR ist die Suche (das durchlaufen) extrem lahm. Gibt es eine schnellere Methode einen "String" zur durchsuchen. Mit der while Schleife analysiere ich Zeichen für Zeichen um mir die notwendigen Positionen zu protokollieren. Gruß Hiele |
Re: Position von Text/Links in einer HTML Datei finden
Moin Hiele,
Zitat:
Wenn ja: Übertrag' die mal vor der Schleife in eine Stringvariable, und arbeite mit der. Wenn nein: Zeig' mal wie Du es machst. |
Re: Position von Text/Links in einer HTML Datei finden
Hallo Hiele,
wie greifst du denn auf den Text des RichEdit zu? Kannst du Code zeigen? Dein Problem habe ich inzwischen verstanden, habe auch einen Ansatz entwickelt und implementiert. Ich markiere den zu extrahierenden Text im Browser. Dann ersetze ich den ausgewählten Text im DOM durch eine interne Markierung, wobei ich den vorherigen Inhalt zwischenspeichere. Jetzt kann ich die Stelle im Markup ermitteln, an der die Markierung steht. Ab hier ist es eine Frage des Ehrgeizes, ob ich das vollständige HTML bis zur gefundenen Stelle als Prefix nehme oder den Riesen-String soweit verkleinere, dass er gerade noch eindeutig ist. Sagen wir mal so: Es gibt Testfälle, die erfolgreich verarbeitet werden, aber zufrieden bin ich noch nicht. Wenn du mit deinem Textparser glücklich bist, dann stampfe ich das wieder ein, denn momentan bin ich arg im Stress, was meine kommerziellen Projekte betrifft. Freundliche Grüße |
Re: Position von Text/Links in einer HTML Datei finden
Hi marabu,
das was du da machst ist genau, was ich wollte. Der Textparser ist lediglich eine Notlösung und dauert furchtbar lange. Aber Arbeit geht vor - lass dich also von mir (und meinen Vorstellungen) nicht ablenken. Mein Delphiwissen ist dem kaum würdig :oops: (Naja vieleicht ein bischen) Wäre aber schön, wenn du dran bleibst, ist bei mir nicht allzu Zeitkritisch. Aber für ein Tip um die Prozedur zu beschleunigen wäre ich dankbar. Mit doc.body.innerHTML habe ich es auch schon versucht. Würde ein virtueller Richedit das beschleunigen? Gruß Hiele Hier der Parser:
Delphi-Quellcode:
procedure TForm4.sbanalyseClick(Sender: TObject);
var i2 : longint; // Für verschachtelte Tags s, stag : string; // s=Text/Link/Bild stag=Was für ein Tag tagclose,scriptclose : boolean; // Verschachtelter Tag geschlossen / Script geschlossen listitem : TListItem; // Ergebnissliste (Text/Link/Bild mit Position) begin // Quelltextparser progbar.Max := length(quelltext1.Text); //Status des Parsers progbar.Visible := true; liste.Clear; // Ergebnissliste vorbereiten liste.Items.BeginUpdate; posqt := 0; // Position im Quelltext s := ''; i2 := 0; stag := ''; tagclose := false; scriptclose := false; statusbar.Panels[0].Text := 'Analysiere Page ...'; while posqt < length(quelltext1.text) do begin if quelltext1.text[posqt] = '<' then begin s := ''; inc(posqt); application.ProcessMessages; progbar.Position := posqt; // IST SCRIPT if lowercase(copy(quelltext1.text,posqt,6)) = 'script' then begin while not(scriptclose) and (posqt<length(quelltext1.text)) do begin if lowercase(copy(quelltext1.text,posqt,5)) <> '</scr' then inc(posqt) else scriptclose := true; application.ProcessMessages; end; end else begin // IST Normaler Tags stag := ''; stag := stag + quelltext1.text[posqt]; while not(tagclose) and (posqt<length(quelltext1.text)) do begin if (quelltext1.text[posqt] = '>') and (i2 = 0) then tagclose := true; if (quelltext1.text[posqt] = '<') then inc(i2); if (i2>0) and (quelltext1.text[posqt]='>') then dec(i2); // IST LINK if (lowercase(copy(quelltext1.text,posqt,6)) = 'href="') and mlinks.checked then // Suche nach Links begin // LINK FINDEN inc(posqt,6); application.ProcessMessages; while quelltext1.text[posqt] <> '"' do begin s := s + quelltext1.text[posqt]; inc(posqt); progbar.Position := posqt; end; // LINK HINZUFÜGEN listitem := liste.Items.Add; listitem.Caption := s; listitem.ImageIndex := 10; listitem.StateIndex := 10; listitem.SubItems.Add(inttostr(posqt)); s := ''; end; // IST BILD if (lowercase(copy(quelltext1.text,posqt,5)) = 'src="') and mbilder.checked then // Suche nach Bildern begin // BILD FINDEN inc(posqt,5); while quelltext1.text[posqt] <> '"' do begin s := s + quelltext1.text[posqt]; inc(posqt); progbar.Position := posqt; end; // BILD HINZUFÜGEN listitem := liste.Items.Add; listitem.Caption := s; listitem.ImageIndex := 11; listitem.StateIndex := 11; listitem.SubItems.Add(inttostr(posqt)); s := ''; end; stag := stag + quelltext1.text[posqt]; inc(posqt); progbar.Position := posqt; application.ProcessMessages; end; i2 := 0; tagclose := false; scriptclose := false; end; end else begin if mtext.checked then // MIT TEXT (Suche nach Texten) begin while (quelltext1.text[posqt] <> '<') and (posqt<length(quelltext1.text)) do begin s := s + quelltext1.text[posqt]; inc(posqt); progbar.Position := posqt; application.ProcessMessages; end; if length(s)>0 then if (s[1] in ['a'..'z','A'..'Z','0'..'9']) and (copy(stag,1,2)<>'<!') then begin listitem := liste.Items.Add; listitem.Caption := s; listitem.ImageIndex := 8; listitem.StateIndex := 8; listitem.SubItems.Add(inttostr(posqt)); stag := ''; end; end else inc(posqt); end; end; statusbar.Panels[0].Text := 'Fertig!'; progbar.Visible := false; liste.Items.EndUpdate; end; |
Re: Position von Text/Links in einer HTML Datei finden
Moin Hiele,
wie ich schon vermutet hatte ;-) Probier's mal so:
Delphi-Quellcode:
Der Performanceverlust rührt daher, dass bei jedem Zugriff auf Text diese Eigenschaft aus den Lines zusammengesetzt wird.
var
// Deine sonstigen Variablen sContent : string; begin sContent := quelltext1.Text; // Der Rest Deiner Routine // Hierbei muss dann aber quelltext1.Text durch sContent ausgetauscht werden end; |
Re: Position von Text/Links in einer HTML Datei finden
Hi Christian,
ist deutlich zu merken, Danke. Zwar dauert diese Lösung bei 80kb Seiten wie Wetter.com zwar immernoch lange, doch es passiert erkennbar was. Bekomme ich bei 80.000 Zeichen im string keine Probleme? Gruß Hiele |
Re: Position von Text/Links in einer HTML Datei finden
Moin Hiele,
Zitat:
(abzüglich dessen, was der Rest des Programmes benötigt) |
Re: Position von Text/Links in einer HTML Datei finden
guten abend
ich suche für ein Ähnliches Problem eine Lösung und bin bisher noch nicht fündig geworden... ich hänge das einfach mal an muss ja nicht unbedingt das Forum zumüllen ;-) ich habe im twebbrowser eine Seite geöffenet.. im Quelltext der Seite soll nach einer bestimmten Zeichenkombination gesucht werden nehmen wir an '-a-' links von der Zeichenkombination stehen noch buchstaben die wichtig sind und rechts ebenfalls ich möchte das ganze in einen string packen... nach links und nach rechts wird der wichtige Teil jeweils durch ein " abgegrenzt es handelt sich um eine emailadresse.... der schlüssel ist also die oben genannte Zeichenkombination achso die Zeciehnkombi kommt 2 mal in der Webseite vor! die für mich wichtige ist die 2te ... Wäre super dankbar für einen Lösungsvorschlag vielen Dank Schlönen abend noch |
Re: Position von Text/Links in einer HTML Datei finden
Hallo, vielleicht so...
Delphi-Quellcode:
Aufruf...
procedure GetEMails(Html:string; Mails:TStrings);
var RegExpr:TRegExpr; begin RegExpr:=TRegExpr.Create; try RegExpr.ModifierG:=false; RegExpr.Expression:='"(.+)@(.+)"'; if RegExpr.Exec(Html) then begin repeat Mails.Append(RegExpr.Match[1] + '@' + RegExpr.Match[2]); until not RegExpr.ExecNext; end; finally RegExpr.Free; end; end;
Delphi-Quellcode:
Ergebnis:
var EMailList:TStringList;
i:integer; EMail:string; begin EMailList:=TStringList.Create; try GetEMails('<a href="ich@du.de">Hallo<a "mailto:aaa@bbb.ccc" style="">', EMailList); for i:=1 to EMailList.Count do begin EMail:=EMailList[i-1]; end; finally EMailList.free; end; end;
Code:
[email]ich@du.de[/email]
mailto:aaa@bbb.ccc ![]() Gruss Thorsten |
Re: Position von Text/Links in einer HTML Datei finden
ok vllt haben wir aneinander vorbei geredet ;-)
also ich habe nen elend lange Quelltext welcher sich immer wieder ändert! das einzige was in jedem Quelltest immer wieder vorkommt ist die Zeichenkombination ( das zeichen welches das @ ersetzt / codiert) das ist auf jeder seite identisch darüber kann ich die Mail addy finden... die Mail Adresse ist logischer Weise auch auf jeder aufgerufenen Seite anders. ich suche den Quelltext nach dem Codierten @ ab , angenommen es sieht so aus :'++at++' suche dann ab dem ersten gefundenen weiter bis ich zum 2ten gefundenen gelange, da erste ist nicht das gesuchte , gehe vom 2ten nach links bis der Anfang der Mail addy erreicht ist ( wirds durch ein " beendet, das gleich von codierten @ nach rechts. "ich++at++web.de" Das ganze was sich um das codierte @ befindete packe ich in einen String- dann komme ich wieder alleine klar ;-) ich hoffe es ist verständlich erklärt ;-) vielen dank aber schonmal für die mühen |
Re: Position von Text/Links in einer HTML Datei finden
Ja, für sowas sind Reguläre-Ausdrücke doch perfekt geeignet.
Das was du dir vorstellst macht der vorgestellte Code doch. Hast du das mal ausprobiert? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:34 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