Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Link aus memo rauskopieren (https://www.delphipraxis.net/181312-link-aus-memo-rauskopieren.html)

RuSsAk 5. Aug 2014 12:23

Delphi-Version: 5

Link aus memo rauskopieren
 
Hallo Leute :thumb:
Ich bräuchte ein bisschen hilfe :oops:

ich lade mir den Webbrowser Quellcode einer Website in ein memo jetzt würde ich gerne nur ein bestimmten Link zwischen:

Code:
src="https://home.navigator......
und
Code:
"
rauskopieren

ich Krieg es aber nicht hin:x kann mir bitte jemand helfen?

Puke 5. Aug 2014 12:32

AW: Link aus memo rauskopieren
 
Entweder du nimmst ein HTML-Parser oder du versucht es Delphi-Referenz durchsuchenCopy, Delphi-Referenz durchsuchenDelete, Delphi-Referenz durchsuchenPos und Delphi-Referenz durchsuchenPosEx.

Viel Spaß damit
Puke

mkinzler 5. Aug 2014 12:37

AW: Link aus memo rauskopieren
 
Ist ein klassisches Anwendungsgebiet für reguläre Ausdrücke.

Sir Rufo 5. Aug 2014 12:47

AW: Link aus memo rauskopieren
 
Und was ist jetzt der Unterschied zu deiner letzten Frage?
http://www.delphipraxis.net/181285-w...skopieren.html

Genau das kommt dabei raus, wenn man sich zu sehr auf die Controls versteift und dafür Methoden entwickelt.

Mit den Erkenntnissen aus der letzten Frage hättest du das bauen können:
Delphi-Quellcode:
  Edit1.Text := StringBetween( Memo1.Text, 'src="', '"' );
Warum der HTML-Text überhaupt in das Memo geladen wird und von dort für die weitere Verarbeitung geholt werden soll ist auch ein grober Fehler. Controls benutzt man ausschließlich für den Dialog mit dem Benutzer und nicht als Datenspeicher!

Insgesamt wäre ein HTML-Parser allerdings genau das richtige Werkzeug dafür.

mkinzler 5. Aug 2014 13:02

AW: Link aus memo rauskopieren
 
Findet alle URLs in einem Memo:

Delphi-Quellcode:
Uses ... RegularExpressions ...
const
  pattern = '(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?';
var
  matches: TMatchCollection;
  match: TMatch;
begin
  matches := TRegEx.Matches( Memo.Text, pattern);
  Caption := IntToStr( matches.Count);
  for match in matches do
  begin
    //Url in match.Value
    ...
  end;

Puke 5. Aug 2014 21:49

AW: Link aus memo rauskopieren
 
Wie du siehst: Ganz einfach :mrgreen:

:gruebel::gruebel::gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz