also hier erstmal mein quelltext, bei dem ich hilfe brauche:
Delphi-Quellcode:
procedure TForm1.BtnSearchSitClick(Sender: TObject);
var direct,filename:
string;
page:TStringList;
i,idx:integer;
re:TRegExpr;
such:Boolean;
hashsit,hashpic:TStringDictionary;
begin
direct:=Edpaths.Text;
hashsit:=TStringDictionary.Create;
hashpic:=TStringDictionary.Create;
GetFilesInDirectory1(direct,'
*.html',hashsit,true,true);
GetFilesInDirectory1(direct,'
*.htmlm',hashsit,true,false);
GetFilesInDirectory1(direct,'
*.jsp',hashsit,true,false);
LiBoSit.Items.Add('
das geht auch :D');
//routine zum suchen der Url in den htmls
page:=TStringList.Create;
re:=TRegExpr.Create;
try
for i:=0
to hashsit.TotalCount-1
do
begin
page.LoadFromFile(hashsit.first);
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];
filename:=ReplaceHex(filename);
if not (filename = '
')
then hashpic.Add(filename,
nil);
until not re.ExecNext;
end;
finally
LiBoPicsFoundInPages.Sorted:=true;
page.Free;
re.Free;
end;
end;
wundert euch nicht, manche variablen hab ich noch nicht geloescht, nach dem umstellen von listbox auf hashtabellen!
so ich hab jetzt die pfade von den htmls in hashsit gespeichert, das scheint auch zu funktionieren. jetzt hab ich halt das problem dass ich nicht weiss wie ich an die keys in der tabelle komme, zb in der zeile:
page.LoadFromFile(hashsit.first);
das inkompatible typen, is ja klar, aber wie mach ich denn dass die zaehlschleife durch jede datei geht und nach der regex sucht? also wie komm ich an den key ran!