AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi routine aendern(speichern in listbox>speichern in hashtable)
Thema durchsuchen
Ansicht
Themen-Optionen

routine aendern(speichern in listbox>speichern in hashtable)

Ein Thema von nimmersattXD · begonnen am 10. Jun 2009 · letzter Beitrag vom 16. Jun 2009
 
Benutzerbild von nimmersattXD
nimmersattXD

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

Re: routine aendern(speichern in listbox>speichern in has

  Alt 15. Jun 2009, 16:10
so jetzt hab ich mich noch ein bisschen ueber pointer informiert und mein programm geaendert, anscheinend speichert es auch schon meinen string im data der hashtabelle(hashpicofsit), aber bei der ausgabe will es einfach nicht funktionieren

hier mein quelltext dazu:

Delphi-Quellcode:
procedure TForm1.BtnSearchSitClick(Sender: TObject); //zum finden der Seiten in den ordnern und der urls der bilder
var direct,filename,key:string; //in den html
    dummy:Pointer;
    page:TStringList;
    idx:integer;
    re:TRegExpr;
    such:Boolean;
begin
direct:=Edpaths.Text;
hashsit:=TStringDictionary.Create;
hashpicofsit:=TStringDictionary.Create;

if not (EdpathS.Text='') then
 begin
 GetFilesInDirectory1(direct,'*.html',hashsit,true,true);
 GetFilesInDirectory1(direct,'*.htmlm',hashsit,true,false);
 GetFilesInDirectory1(direct,'*.jsp',hashsit,true,false);
 end
else ShowMessage('Please, insert the directory paths first!');

LbSit.Caption:=inttostr(hashsit.TotalCount);
Panel2.Color:=clGreen;
Application.ProcessMessages;
//routine zum suchen der Url in den htmls

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

   try
   while hashsit.Next(key,dummy) do
     begin
     page.LoadFromFile(key);
     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 hashpicofsit.Add(filename,@key) //hier kommt keine fehlermeldung, scheint also zu funktionieren
       until not re.ExecNext;
       end;
   finally
     page.Free;
     re.Free;
   end;

   LbPicsFoundInPages.Caption:=inttostr(hashpicofsit.TotalCount);

   Panel3.Color:=clGreen;
   Application.ProcessMessages;

end;

procedure TForm1.BtnSearchFinClick(Sender: TObject); //vergleicht gefundene bilder(aus ordner) und gefundene bilder(in htmls)
var key:string;
    dummy1:pointer;
    dummy2:^string;
    length,voll,i:double;
    parts,percent:integer;
begin

if not ((EdpathS.Text='')or(EdpathS.Text='')) then
begin
 BtnSearchPic.Click;
 Panel1.Color:=clGreen;
 Application.ProcessMessages;
 BtnSearchSit.Click;
 Application.ProcessMessages;

 length:=Panel5.Width;
 voll:=hashpic.TotalCount*0.05;
 Panel5.Width:=0;
 i:=0;
 percent:=0;
 Panel5.Visible:=true;
 parts:=round((length*5)/100);

 hashpic.First;

 if (hashpic.TotalCount>0) and (hashpicofsit.TotalCount>0) then
  begin
  Screen.Cursor:=crHourGlass ;
    try
     while hashpic.Next(key,dummy1) do
      begin
      hashpicofsit.First;
      BtnSearchFin.Caption:='SEARCHING ...' ;
      i:=i+1;
      if i>=voll then
        begin
        i:=0;
        Panel5.Width:=Panel5.Width+parts;
        percent:=percent+5;
        Label6.Caption:=(inttostr(percent)+'%');
        Application.ProcessMessages;
        end;
      if hashpicofsit.Find(key,dummy2) then //hier kommt die fehlermeldung
        begin
        LiBoUsed.ItemIndex:=LiBoUsed.Items.Add(key);
        LiBoUnused.ItemIndex:=LiBoUnused.Items.Add(dummy2^); //AUSGABE der data
        end
      end;
     finally
       begin
       Panel5.Width:=445;
       Label6.Caption:='100 %';
       Label5.Visible:=true;
       BtnSearchFin.Caption:='Search for unused pictures';
       screen.cursor:=crdefault;
       end;
     end;
  end
 else ShowMessage('In the folders or in the pages are no pictures been found');

end
else ShowMessage('Please, insert the directory paths first!');

end;

fehlermeldung: [error] ...: Types of actual and formal var parameters must be identical
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
 


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 12:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz