Bonjour,
Est il possible de trouver une chaine de caractères dans une page web sans avoir à l'ouvrir?
Version imprimable
Bonjour,
Est il possible de trouver une chaine de caractères dans une page web sans avoir à l'ouvrir?
Qu'entend tu par ouvrir, tu sera bien obligé de l'ouvrir d'une manière ou d'une autre pour faire la recherche.
L'ouvrir ne me dérange pas, je voudrais juste qu'elle ne s'affiche pas à l'écran. c'est possible?
ben oui c'est possible :)
tu prend le composant web je sais plus le nom exact, tu charge la page et tu tarange pour que la propriété visible soit a false ;)
Le composant est le TCppWebBrowser
faut lire le" Body de la page web : TcppWebBrowser
tu trouvera la reponse dans la faq ou source
et pour recherche une chaine utilie la fonction strstr(...,....)
@+
J'ai essayé d'intégrer le code de la FAQ mais j'ai un problème à la compilation :
[Lieur Erreur] Unresolved external '__fastcall TForm_test_version::GetSource(Shdocvw_tlb::TCppWebBrowser *)' referenced from C:\USERS\LUDOVIC\DESKTOP\BORLAND PROJET\UNIT9.OBJ
Je ne comprend pas d'où vient le Shdocvw_tlb???
voici mon code :
et dans le .h :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 #include <mshtml.h> CppWebBrowser1->Navigate((WideString)"http://www.logicsystems.fr"); GetSource(CppWebBrowser1); AnsiString __fastcall GetSource (TCppWebBrowser * browser) { IHTMLDocument3 *html = NULL; IHTMLElement *element = NULL; BSTR string = L""; try { if (browser->Document != NULL) { OleCheck(browser->Document->QueryInterface(IID_IHTMLDocument3,(LPVOID*)&html)); OleCheck(html->get_documentElement(&element)); OleCheck(element->get_outerHTML(&string)); } } catch (EOleSysError &eOSE) { if (element != NULL) { element->Release(); } if (html != NULL) { html->Release(); } throw eOSE; } return (AnsiString) string; }
Code:AnsiString __fastcall GetSource(TCppWebBrowser * browser);
J'ai trouvé d'où provient mon erreur... C'est de mon appel à la fonction :
Ce n'est pas cela que l'on doit passé comme paramètre?Code:GetSource(CppWebBrowser1);
Réponse dans la FAQ : http://cpp.developpez.com/faq/bcb/?p...s#erreurlieur4 ;)
afin de visualiser ce que j'obtenais, j'ai essayé cela :
Mais je n'ai absolument rien qui ne s'affiche dans mon memo...Code:
1
2
3 Browser->Navigate((WideString)"http://www.monsite.fr"); AnsiString code_source = GetSource(Browser); Memo_resultat_test->Lines->Add(code_source);
quelle methode faut il utilisé?
pour lire un fichier se trouvant sur une adresse Url
@+Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 TMemoryStream *memory = new TMemoryStream(); TStringList *Memo = new TStringList(); TNMHTTP *pNmhttp = new TNMHTTP(NULL); pNmhttp->InputFileMode = false; //mettre true pour enregistrer le fichier localement pNmhttp->Get("http://www.xxxxx.be/list.txt"); Memo->Add(pNmhttp->Body.c_str()); Memo->SaveToStream(memory); memory->Position = 0; List1->Items->LoadFromStream(memory);