Autor Beitrag
Sithlord
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 172



BeitragVerfasst: Sa 12.07.08 22:10 
Hallo !

Ich lade mit Hilfe von IDHTTP.get eine Seite herunter und speichere sie in einem String!
Diesen String durchsuche ich nach einem Satz mithilfe von POS !

Klappt auch ganz gut, aber ...

...Obwohl sich die Seite verändert hat und dieser Satz nicht mehr auf der Seite steht, wird angezeigt das er das steht.

Und wenn ich mit IDHTTP.get das ganze auch noch in einer html Datei speichere, bleibt diese Datei immer gleich, obwohl sich ja die quelle verändert hat!

Was mache ich falsch ?

_________________
Heut ist nicht alle Tage, ich hab wieder ein Problem, keine Frage...
PeterPain
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 83



BeitragVerfasst: So 13.07.08 03:11 
user profile iconSithlord hat folgendes geschrieben:

Was mache ich falsch ?


du postest keinen quellcode.

gruss :)
Sithlord Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 172



BeitragVerfasst: So 13.07.08 09:51 
Ohja, sorry, war gestern so sauer darüber ^^, da hab ichs wohl vergessen :


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
uses mmsystem;
var
check:integer;

//Deklarierung
var str:string;
begin
//Setze Check auf 1 
check:=1;
//Leere String
str:='';
//String wird mit Inhalt einer bestimmten Adresse gefüllt
str:=idhttp.Get(edit1.text);
//Kleine Pause damit auch wirklich alles in den String kommt
sleep(600);
//Sollte folgende Zeichenkette gefunden werden, setze integer check auf 0
if pos('Keine passenden Ergebnisse.',str) > 0 then
check:=0;
//Sollte die Zeichenkette nicht gefunden werden, gibt es ein "Ding"
if check=1 then
PlaySound('Ding'0, SND_SYNC);


Der Integer "check" ist global deklariert, da dieser noch woanders gebraucht wird ;-)
Und bitte keine meckereien zu meinem Quellcode - höchstens verbesserungen, da ich wie man bestimmt erkennt ein Anfänger bin in Sachen guter Quellcode ;-)

Mfg Sithlord

_________________
Heut ist nicht alle Tage, ich hab wieder ein Problem, keine Frage...
Sithlord Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 172



BeitragVerfasst: So 13.07.08 13:15 
Sorry für Doppelpost -
aber neuere Erkenntniss :
Das Problem liegt genau an dieser einen bestimmten Seite!

Obwohl sich der Quelltext nachweißlich ändert - bleibt er für IDhttp trotzdem gleich ;-)
Kann man mit der Webbrowserkomponente nicht was anfangen und das alles in einen String laden ?

Mfg Sithlord

_________________
Heut ist nicht alle Tage, ich hab wieder ein Problem, keine Frage...
IceBube
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 231



BeitragVerfasst: So 13.07.08 13:22 
Mach mal so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
uses mmsystem; 
var 
check:integer; 


//Deklarierung 
var str:string
begin  
  //String wird mit Inhalt einer bestimmten Adresse gefüllt 
  str:=idhttp.Get(edit1.text); 

  if pos('keine passenden ergebnisse.',LowerCase(str)) <> 0 then 
  check:=0 else check := 1;
  
  //Sollte die Zeichenkette nicht gefunden werden, gibt es ein "Ding" 
  if check=1 then PlaySound('Ding'0, SND_SYNC);
end;


Edit: Vielleicht liegt es am "UserAgent" ??

User-Agent umstellen:
ausblenden Delphi-Quelltext
1:
idHttp.Request.UserAgent := 'IE7'//					

lg


Zuletzt bearbeitet von IceBube am So 13.07.08 13:30, insgesamt 1-mal bearbeitet
Sithlord Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 172



BeitragVerfasst: So 13.07.08 13:29 
Danke - geht trotzdem nicht !

Wie gesagt - es geht mit stinknormalen Webpages, ich habe es im Intranet getestet ;-)
Aber Online (Firefox findet ihn mit integrierter Suche auf HTML Ebene wie auch auf Quelltextebene ) findet er es auch - aber IMMMER ! Auch wenn sich die Seite verändert hat, lädt idHTTP immer noch die alte Seite runter - die gar nicht mehr existiert (Per Browser nachgewiesen).
Das ist irgendwie komisch!

Edit:
Habe dein Code mal ins Oncreate Ereignis gepackt - geht trotzdem nicht !

_________________
Heut ist nicht alle Tage, ich hab wieder ein Problem, keine Frage...
IceBube
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 231



BeitragVerfasst: So 13.07.08 13:34 
Naja ist komisch das er die alte Seite noch immer lädt, ich denke mir das kann am User-Agent liegen, aber ich weiß es nicht genau :(

Probier mal das vorher einzustellen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
idhttp.Request.UserAgent := 'IE';
//
idhttp.AllowCookies := False;
idhttp.HandleRedirects := True;


Edit: Kannst ma mal die Seite sagen? Dann kann ichs auch probieren! Oder ist die geheim? Du hast ja meine Talkbox könn ma chatten....
Sithlord Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 172



BeitragVerfasst: So 13.07.08 13:39 
Kann man nicht die Twebbrowser Komponente in einen String laden ?
Das wäre glaube ich besser ;-)

Geht immer noch nicht! :(

Das ist komisch - obwohl sich die Seite nachweißlich ändert und der Satz gar nicht mehr da steht und ich eingeloggt bin - geht es nicht.

Edit :
Die Seite ist nur verfügbar, wenn man eingeloggt ist auf www.pcfreunde.de ;-)
Das sind die eigenen, ungelesenen Beiträge, ich hänge gleich mal Screenshoots an ;-)
Einloggen, um Attachments anzusehen!
_________________
Heut ist nicht alle Tage, ich hab wieder ein Problem, keine Frage...
IceBube
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 231



BeitragVerfasst: So 13.07.08 13:45 
Ich glaub schon nur weiß ich nicht genau wie - such mal bei Google!

Dadurch das du die einloggen musst, lädt er nicht die gewünschte Seite herunter. Da musst du mit Cookies arbeiten, und da kann ich dir leider nicht helfen :(

lg
Sithlord Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 172



BeitragVerfasst: So 13.07.08 13:48 
Auch wenn ich mich nicht einlogge, zeigt er das an :
www.pcfreunde.de/for...68&btnApply.y=16
Das ist genau die seite- und selbst da steht nichts von "keine passende ergebnisse!

_________________
Heut ist nicht alle Tage, ich hab wieder ein Problem, keine Frage...
IceBube
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 231



BeitragVerfasst: So 13.07.08 13:54 
Bei mir schon ;)

Hier mein Quelltext:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
function Find(Link:string):boolean;
var idHttp : TidHttp;
str:string;
begin
idhttp := TidHttp.Create(nil);
idhttp.Request.UserAgent := 'IE9';
idhttp.AllowCookies := False;
idhttp.HandleRedirects := True;
//
//String wird mit Inhalt einer bestimmten Adresse gefüllt
str:=idhttp.Get(Link);

if pos('keine passenden ergebnisse.',LowerCase(str)) <> 0 then Result:= True else Result := False;

idhttp.Free;
end;

//Aufrufen
Find(Die Linkadresse);


Edit: Auch wenn ich eine andere Seite wähle wo das nicht darsteht wird funktioniert es..


Zuletzt bearbeitet von IceBube am So 13.07.08 14:09, insgesamt 1-mal bearbeitet
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: So 13.07.08 13:57 
Irgendwie steht das sogar mehrmals da.
Einloggen, um Attachments anzusehen!
Sithlord Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 172



BeitragVerfasst: So 13.07.08 14:11 
Oh ihr könnt sogar so darauf zugreifen ? Lusti xD

Naja, ok, ich werde den Code mal probieren!
Ja - steht zweimal da ;-)

Edit :

Hab nen Fehler gefunden :
Wenn man nicht eingeloggt ist, wird immer "Keine Ergebnisse" angezeigt ;-)
Daher kommt auch der Fehler, wie melde ich denn nun das Script automatisch an ?

_________________
Heut ist nicht alle Tage, ich hab wieder ein Problem, keine Frage...
IceBube
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 231



BeitragVerfasst: So 13.07.08 14:21 
Komsich bei mir werden Ergebnisse angezeigt, wenn ich Bei Bereich wechle und dann Anwenden drücke?!?

Vielleicht funktioniert es über die URL:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
function GetLink(account:string;page:integer;Kategorie:string):string;
begin
//HauptLink
hLink := 'http://www.pcfreunde.de/forum/themenabfrage/?type=accountTopics&' 
//Seite
page := 'page='+strToInt(Seite)+'&';
//Deine Account ID
accID := 'accountId='+account+'&';
//Die Kategorie
cat := 'categoryForumId='+ Kategorie+'&';
//Ende vom Link
eLink := '&btnApply.x=70&btnApply.y=6';
Result := hLink+page+accID+cat+eLink;
end;

//Aufruf
//Deine AccountNummer brauchst du und Seite=1 und die Kategorie
Link := GetLink('50202',1,'F13');
Sithlord Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 172



BeitragVerfasst: So 13.07.08 14:30 
Du brauchst den Bereich nicht mal zu wechseln ;-)

Mein Programm soll die eigenen, noch ungelesenen Beiträge anzeigen - wenn du auf Anwenden drückst, kommst du zu meinen ganzen Beiträgen, die ich geschrieben habe, es sollen jedoch nur die angezeigt werden, welche auch wirklich vom User noch ungelesen sind ;-)

_________________
Heut ist nicht alle Tage, ich hab wieder ein Problem, keine Frage...
IceBube
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 231



BeitragVerfasst: So 13.07.08 15:27 
Ok, versteh ich dann geht man auf Bereich "Alle" und dann werden die ganzen Themen aufgelistet...

dann ist ja eh alles klar oder?

www.pcfreunde.de/for...77&btnApply.y=12

^die einfach rausfiltern und schauen ob sie gelesen/ungelesen sind....

Info: Prüf den Bildnamen

lg

Edit: Wechseln muss man schon weil du ja mehrere Seiten hast!
Sithlord Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 172



BeitragVerfasst: So 13.07.08 15:40 
Danke ;-)


So, ich habe mein Gehirn nochmal angestrengt und einen halbwegs umständlichen Weg gewählt - der aber zuverlässig geht ^^ .
Es geht ja auch nicht um Geschwindigkeit bei diesem Programm - hauptsache es macht "Ding" ^^.

Ok vielen dank an euch alle !

So bin ich zur lösung gekommen (Umständlich aber geht) :
1)Seite in TWebbrowser einlesen
2)Seitenquelltext nach Tmemo kopieren
3)Tmemo in String kopieren
4)String durchsuchen
5)Entprechende Meldung ausgeben

Das ganze dauert inklusive Laden der Seite 3-4 Sekunden, ist also relativ schnell ;-)

_________________
Heut ist nicht alle Tage, ich hab wieder ein Problem, keine Frage...