Einzelnen Beitrag anzeigen

Benutzerbild von nimmersattXD
nimmersattXD

Registriert seit: 1. Jun 2009
Ort: Sangerhausen
65 Beiträge
 
Delphi 7 Personal
 
#48

Re: wie benutze ich regular expressions?

  Alt 8. Jun 2009, 12:03
mmh kann leider nich kopieren, hab hier auf arbeit den rechner hier mit dem ich ins inet gehe, da ist aber leider kein delphi drauf, deswegen hab ich auch meinen leppie hier mit (bin fuer 6 wochen nur zum einsatz hier in london) der kein inet hat ...

is aba acuh nur ne bloede ausrede, richtig abschreiben muss ich ja trotzdem koennen, da haste recht

Delphi-Quellcode:

procedure TForm1.BtnSearchSitClick(Sender: TObject);
var direct,filename,afterspace,beforespace:string;
    page:TStringList;
    i,j,idx:integer;
    re:TRegExpr;
    such:Boolean;
begin
direct:=Edpaths.Text;
GetFilesInDirectory(direct,'*.html',LiBoSit.Items,true,true);
GetFilesInDirectory(direct,'*.htmlm',LiBoSit.Items,true,false);
//GetFilesInDirectory(direct,'*.jsp',LiBoSit.Items,true,false);

LbSit.Caption:=(IntToStr(LiBoSit.Count));


//routine zum suchen der Url in den htmls

page:=TStringList.Create;
re:=TRegExpr.Create;

   try
   for i:=0 to LiBoSit.Count-1 do
     begin
     page.LoadFromFile(LiBoSit.Items[i]);
     re.ModifierI:=true;
     re.ModifierG:=true;
     re.ModifierM:=false;
     re.ModifierS:=false;
     re.ModifierX:=false;
     re.Expression:='<img .*?src=[\\]??"([^"]*?)[\\]??"';
     such:=re.Exec(page.Text);
     if such then
       repeat
       idx:=LastPos('/',re.match[1]);
         if idx > 0 then filename:=copy(re.Match[1],idx+1,length(re.Match[1]))
           else filename:=re.match[1];
         idx:=LastPos('%20',filename);
         if idx > 0 then begin
         afterspace:=copy(filename,idx+3,length(filename));
         beforespace:=copy(filename,0,idx-2);
         filename:=beforespace+' '+afterspace;
         end;

       LiBoPicsFoundInPages.Items.Add(filename);
       until not re.ExecNext;
       end;
   finally
     LiBoPicsFoundInPages.Sorted:=true;
     page.Free;
     re.Free;
   end;

   LbPicsFoundInPages.Caption:=(IntToStr(LiBoPicsFoundInPages.Count));

end;
so mein neuer code!

hab das mit dem %20 so geloest, aba das wahre scheint das noch nichts zu sein
und die jsp-dateien musste ich auch ausklammern, weil es mit denen anscheinend nicht funktioniert!
Sorry an alle fuer die es schwerfaellt meine texte zu lesen! ich bin im moment in england und hab nur eine englische tastatur, also leider keine umlaute usw.!

http://nimmersatt-xd.mybrute.com
  Mit Zitat antworten Zitat