Autor Beitrag
mvbs
Hält's aus hier
Beiträge: 3

WinXP Pro, Mandrake 10.1
Delphi 6.0 Personal
BeitragVerfasst: Do 29.12.05 13:52 
Hi.
Für Mein Projekt bräuchte ich eine Funktion, die aus einem RSS-Feed wie zB den von Telepolis die Link-URLs zu den Artikeln extrahiert.

Kann mir da jemand von euch weiterhelfen?

thx
:r4f:mvbs:
Horst_H
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1654
Erhaltene Danke: 244

WIN10,PuppyLinux
FreePascal,Lazarus
BeitragVerfasst: Do 29.12.05 16:27 
Hallo,

waere soetwas : www.softgames.de/for...ewtopic.php?t=115036 hilfreich ?
Es extrahiert den Text nach einem Tagr also etwa nach 'href='.

Gruss Horst
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
uses 
  strutils; 

procedure TagFolgerSuchen(tag:string;var s:string;var outstrL :TStringlist); 
//Sucht in einem String alle Worte,Texte nach einem bestimmten String tag
//bis zu einem Trennzeichen , diese werden in einer Stringliste gespeichert
//Gross-Kleinschreibung wird ignoriert
var 
  i,von,bis,ltag :integer; 
  Kopie : string; 
begin 
  //Ausgabeliste leeren 
  outstrL.clear; 
  // Alles in Grossbuchstaben 
  Kopie := s; 
  Kopie:= uppercase(Kopie); 
  tag := uppercase(tag); 
  //alle SteuerZeichen etc zu Leerzeichen umwandeln 
  for i := 1 to length(Kopie) do 
    If Kopie[i] in[#0..#31,'<','>'] then 
      Kopie[i] := #32; 
  ltag := length(tag); 
  von := 1; 
  if length(Kopie)>lTag then 
    repeat 
      von := PosEx(tag,Kopie,von); 
      //Kein Tag mehr gefunden -> Schleife verlassen 
      if von = 0 then 
        break; 
      von := von+ltag; 
      if von >ltag then 
        //Tag muss vereinzelt sein in nicht zufaellig ein Text 
        if Kopie[von-ltag-1]=' ' then 
          begin 
          // Falls Hochkomma dann abschliessendes Hochkomma suchen 
          case Kopie[von] of 
          #34 : begin 
                inc(von); 
                bis := PosEx('"',Kopie,von)-1; 
              end; 
          #39 : begin 
                inc(von); 
                bis := PosEx(#39,Kopie,von)-1; 
                end 
          else 
            bis := PosEx(' ',Kopie,von)-1; 
          end;//case 
          if bis >0 then 
            begin 
            outstrL.Add(copy(s,von,bis-von+1)); 
            von := bis+1; 
            end; 
          end;// I 
    until false; 
end;

Fuer Dich waere
TagFolgerSuchen('<link>',s,StrL);
passend.