AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Memo nach bestimmtem LINKS durchsuchen.
Thema durchsuchen
Ansicht
Themen-Optionen

Memo nach bestimmtem LINKS durchsuchen.

Ein Thema von xe0n · begonnen am 17. Dez 2005 · letzter Beitrag vom 5. Okt 2008
Antwort Antwort
xe0n

Registriert seit: 17. Dez 2005
15 Beiträge
 
#1

Memo nach bestimmtem LINKS durchsuchen.

  Alt 17. Dez 2005, 14:02
Hallo

ich moechte gerne eim memo nach allen links durchsuchen.
die gefundennen sollen dann alle in einem seperaten memeo abgespeichert werden.

BSP für memo 1.
Delphi-Quellcode:
Text Test
Text TestText Test
Text Test [url]www.google.de/linux[/url] Text Test
Text [url]www.php.net/downloads.php[/url] Text TestText Test
Text TestText Test
Text TestText Test
so, diese 2 Links sollen jetzt in ein 2. memo
untereinander importiert werden.

BSP für MEMO 2.
Delphi-Quellcode:
[url]www.google.de/linux[/url]
[url]www.php.net/downloads.php[/url]
der andere überflüssige text loss also verschwinden.
villeicht hat ja jemand ne tolle idee

mfg Xe0n
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#2

Re: Memo nach bestimmtem LINKS durchsuchen.

  Alt 17. Dez 2005, 14:04
Benutz das RichEdit (Find...) oder nimm das das und das und programmierst es zu deinen Gunsten um
  Mit Zitat antworten Zitat
xe0n

Registriert seit: 17. Dez 2005
15 Beiträge
 
#3

Re: Memo nach bestimmtem LINKS durchsuchen.

  Alt 17. Dez 2005, 14:09
hi ja das iss ja grad das prob ich hab vol delphi noch nicht do viel ahnung
auf die seite die tu gepostet hast bin ich auch schon gestoßen aber ich konnte
nicht wirklich viel damit anfangen.
hat jemand vllt nen code-schnipsel für mich das würde mit weiterhelfen

trotzdem thx für deine fixe antwort no.1

mfg xe0n
  Mit Zitat antworten Zitat
xe0n

Registriert seit: 17. Dez 2005
15 Beiträge
 
#4

Re: Memo nach bestimmtem LINKS durchsuchen.

  Alt 17. Dez 2005, 16:28
oder kannst du mir erklären wie ich die wildcard einsetze
also zb es sind 2 links gegeben.
www.google.de/wasweißich
www.google.de/dasweißichnet

der sollalle kopieren die dem muster entsprechen
www.google.de/*

wenn das fuktioniert

mfg xe0n
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Memo nach bestimmtem LINKS durchsuchen.

  Alt 17. Dez 2005, 16:33
Hallo xe0n,

was ist das für ein Text, den du nach Links untersuchen willst? Handelt es sich dabei zufällig um den Quelltext einer Web-Seite?

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#6

Re: Memo nach bestimmtem LINKS durchsuchen.

  Alt 17. Dez 2005, 16:44
Am einfachsten (wenn man sie dann mal beherrscht) wären IMO Regular Expressions, in Delphi lassen sie sich über zusätzliche Packages nutzen. Für einen einfachen Highlighter (nur www) würde schon
Code:
www\.[\S]+
reichen.

[add]Um auch ein http zuzulassen:
Code:
(http://)?www\.[\S]+
Spätestens hier wird eine pure Delphi-Lösung mit Pos und Co. zu einem ziemlichen Gefummel.
Bessere und dadurch etwas komplexere RegExprs für Links lassen sich schnell im Internet finden.
[/add]
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
xe0n

Registriert seit: 17. Dez 2005
15 Beiträge
 
#7

Re: Memo nach bestimmtem LINKS durchsuchen.

  Alt 17. Dez 2005, 18:13
hi also ich habs jetzt raus bekommen

ja es handelt sich um einen seitenquelltext
was genau ist uninterressant^^
da der quelltext im memo ist brauch ich nur noch die liks zu suche
nach einigen stunde recherche bin ich auf diese gestoßen ^^
diesen findet links und schreibt sie in eine listbox PERFECT für mich

hier das script:

Delphi-Quellcode:
{
  For this tip you need Memo1, ListBox1, Label1, Button1.

  Für diesen Tip braucht man ein Memo1, eine ListBox1,
  ein Label1 und einen Button1.
}


procedure TForm1.Button1Click(Sender: TObject);
var
  i, p: Integer;
  s: string;
begin
  ListBox1.Clear;
  for i := 0 to Memo1.Lines.Count - 1 do
  begin
    if Pos('http://', Memo1.Lines.Strings[i]) > 0 then
    begin
      s := '';
      {If the current line contains a "http://", read on until a space is found

      Die aktuelle Zeile wird nach der Zeichenfolge "http://" durchsucht
      und bei Erfolg ab der gefundenen Position ausgelesen, bis ein
       Leerzeichen auftritt...}


      for p := Pos('http://', Memo1.Lines.Strings[i]) to
        Length(Memo1.Lines.Strings[i]) do
        if Memo1.Lines.Strings[i][p] <> ' then
          s := s + Memo1.Lines.Strings[i][p]
      else
        break;

       {Remove some characters if address doesn't end with a space

      Falls die gefundene Adresse nicht mit einem Leerzeichen abschließt,
       werden hier noch anhängende Textzeichen entfernt...}


      while Pos(s[Length(s)], '..;!")]}?''>') > 0 do
        Delete(s, Length(s), 1);
      // Add the Address to the list...
      //Gefundene Adresse in die Liste aufnehmen...
      ListBox1.Items.Add(s);
    end;
  end;

  // Show the number of Addresses in Label1
  // Die Zahl der gefundenen Adressen in Label1 anzeigen...

  if ListBox1.Items.Count > 0 then
    label1.Caption := IntToStr(ListBox1.Items.Count) +
      ' Adresse(n) gefunden.'
  else
    label1.Caption := 'Keine Adresse gefunden.';
end;
von meiner lieblingsseite http://www.swissdelphicenter.ch

mfg xe0n

p.s an alle die so schnell helfen wollten
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Memo nach bestimmtem LINKS durchsuchen.

  Alt 17. Dez 2005, 19:27
Hallo xe0n,

schön, dass du den für dich passenden Code gefunden hast. Ich lasse mir die Links lieber vom HTML Parser geben und das sieht dann so oder ähnlich aus:

Delphi-Quellcode:
procedure ExtractLinks(doc: IHTMLDocument2; s: TStrings);
var
  all: IHTMLElementCollection;
  e: IHTMLElement;
  i: integer;
  info: TStrings;
  url: Variant;
begin
  info := TStringList.Create;
  all := doc.all;
  for i := 0 to Pred(all.length) do
  begin
    e := all.item(i, 0) as IHTMLElement;
    url := e.getAttribute('href', 0);
    if not VarIsNull(url) then
    begin
      info.Add(e.innerText);
      info.Add(url);
      info.Add(e.tagName);
      s.Add(info.CommaText);
      info.Clear;
    end;
  end;
  info.Free;
end;
Im Gegensatz zu deinem Code "aus der Schweiz" werden damit auch relative Links gefunden, wobei ich gleich noch die Informationen mit einsammle, die der FireFox in seiner PageInfo unter Links anbietet.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von MisterNiceGuy
MisterNiceGuy

Registriert seit: 1. Jul 2003
Ort: Mannheim
919 Beiträge
 
Delphi 7 Personal
 
#9

Re: Memo nach bestimmtem LINKS durchsuchen.

  Alt 5. Okt 2008, 13:00
Gibts ne Möglichkeit alle Links als absolute Links anzuzuzeigen?
Jonas
Wenn mich jemand sucht, ich bin im Kühlschrank!

Informationen über das Duale Studium
www.jofre.de
  Mit Zitat antworten Zitat
Antwort Antwort


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 01:22 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