![]() |
problem mit schleife
hi leutz,...also ich habn problem mit ner schleife^^
ich weiss nicht wieso aber die schleife laeuft mal 3x durch und mal 2x immer unterschiedlich und dann hoert es weiss gott wieso auf weiterzumachen 0_o das programm haengt nicht oder so aber es hoert einfach auf mitten in der schleife ohne fehlermeldung. so habe ich meine schleife gestalted:
Delphi-Quellcode:
also ich weiss beim besten willen nicht weiter,..waere nice wenn sich jemand mal kurz gedanken machen koennte wieso das so ist wie es ist^^
var i: integer;
doc: IHTMLDOCUMENT2; url: String; begin for i:=0 to 10 do begin delay(75000); IdHTTP1.HandleRedirects := True; url := 'http://www.sanook.com/xxx'; doc := GetDocument(IdHttp1.Get(url)) as IHTMLDocument2; ExtractLinks(doc, memo2.lines);//links extrahieren delay(200); findlinks('http://www.sanook.com/xxx', false);//best. links finden nummer:=nummer+1; label2.caption:=inttostr(nummer);//durchlaeufe zaehlen embeddedwb1.navigate(listbox1.items[0]); embeddedwb2.navigate(listbox1.items[1]); embeddedwb3.navigate(listbox1.items[2]); embeddedwb4.navigate(listbox1.items[3]); listbox1.clear; memo2.clear; Application.ProcessMessages; end; thx im vorraus da o0o btw was mir aufgefallen ist ich hab im taskmanager geguggt und sah dass die groesse vom programm durch das stehenbleiben der schleife immer weiter und weiter angestiegen ist 0_o (beim 3fachen groesse hab ich beendet) |
Re: problem mit schleife
delay(75000) wuerde ich nicht unbedingt verwenden. stattdessen kannst du ja einen timer mit dem interval 75000 verwenden.
//edit imho sind das 75 sekunden wo das programm still steht |
Re: problem mit schleife
Moin, Moin,
kein Ahnung ob das mit dem Abbruch zu tun hat: Aber nach dem ersten Durchgang wird der Inhalt von ListBox1 gelöscht, soll aber wohl in den nächsten Durchläufen wieder genutzt werden (wozu?, keine Ahnung) - da ist aber nix mehr drin in der ListBox1! Was ist der tiefere Sinn dessen? Gruß Ralph |
Re: problem mit schleife
(1) formatiere deinen code mal ein wenig lesbarer...
Delphi-Quellcode:
(2) wenn du im 1. aufruf listbox1.clear(); aufrufst und im 2. durchlauf auf listbox1.Items[0] zugreifst, kann das nicht gut gehen.
var i: integer;
doc: IHTMLDOCUMENT2; url: String; begin for i:=0 to 10 do begin delay(75000); IdHTTP1.HandleRedirects := True; url := 'http://www.sanook.com/xxx'; doc := GetDocument(IdHttp1.Get(url)) as IHTMLDocument2; ExtractLinks(doc, memo2.lines);//links extrahieren delay(200); findlinks('http://www.sanook.com/xxx', false);//best. links finden nummer:=nummer+1; label2.caption:=inttostr(nummer);//durchlaeufe zaehlen embeddedwb1.navigate(listbox1.items[0]); embeddedwb2.navigate(listbox1.items[1]); embeddedwb3.navigate(listbox1.items[2]); embeddedwb4.navigate(listbox1.items[3]); listbox1.clear; memo2.clear; Application.ProcessMessages; end; end; oder was passiert in den methoden extractlinks oder findlinks? (3) einen timer kann ich dir auch empfehlen. oder es gibt auch ein event des embedded webbrowser, das dir mitteilt wnan eine seite fertig geladen ist, wenn du dies benötigst... |
Re: problem mit schleife
Wieso soll das eigentlich 12 1/2 Minuten dauern? Gibt es da einen bestimmten Grund für?
|
Re: problem mit schleife
sry habs nicht so mit dem code formatieren^^
ok ich werde jetzt mal alles in einen timer setzen und schauen was passiert... btw zur listbox,...ja mit extractlinks wieder aufgefuellt...solange waehrend dem prozess nix durcheinander geschmissen wird sollte das klappen^^ hab selbst ausprobiert indem ich es per hand einige male aufgerufen habe. der embeddedeb funkt genauso wieder der twebbrowser,...dh man kann schon drauf zugreifen ob die site geladen ist nur normal wenn die 75sec eingehalten werden reicht das vollkommen aus:) Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:37 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-2025 by Thomas Breitkreuz