Search  
Saturday, February 11, 2012 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  Visual FoxPro  COM, DCOM si OLE Automation  cum obtin un fr...
 cum obtin un fragment de text de pe un website ?!
 
 10/17/2006 11:54:56 PM
User is offlineedyshor
1450 posts
1st




cum obtin un fragment de text de pe un website ?!
 (Romania)
salut. mai intai un mic exemplu ...

loIE = CREATEOBJECT("InternetExplorer.Application")
loIE.visible=.f.
llSuccess= loIE.Navigate("http://edyshor-data.blogspot.com")
llSuccess= lWait( loIE )
*- tell to load page, and wait ie to do it
LOCAL oDoc, oElem
oDoc
=loIE.document
oElem=oDoc.getElementById("poem")
x = oElem.innerText

ok, asta merge, dar .. nu-mi place .. de regula gasesc Internet Explorer pe ficare calculator, dar nu este intotdeauna "default browser" .. nu am testat cu firefox, dar eu folosesc avant browser si e default browser .. cand creez obiectul imi deschide un page nou, iar visible=.f. nu mi-l ascunde, iar din experimentele mele cu browser-ul internet explorer aparea un flicker aiurea (inestetic rau de tot)

ce vreau sa fac, e sa obtin innerText-ul tag-ului <div> cu id-ul "poem" cumva .. fara sa se vada .. am intalnit pe fox.wikis.com o chestie (poate o idee alternativa) "Microsoft.XMLHTTP" .. fragment:

oHTTP = Create Object("Microsoft.XMLHTTP")
oHTTP.Open("GET", 'http://fox.wikis.com/wc.dll?Wiki~WikiRss&details=1', .F.)
oHTTP.Send()

suna a AJAX dar nu am nici cea mai mica experianta cu el ..
cineva de pe site ma poate ajuta sa il folosesc sau poate sa-mi ofere o idee alternativa ?!

nu vreau sa folosesc un ActiveX custom, as prefera sa fac asta din cod, folosind (daca e nevoie API's) doar din ce are sistemul de operare ..
mai e o chestie.. la loIE.Quit() imi da eroare .. IEDispatch error .. etc (si un cod in hexa, nu-mi dau seama ce inseamna)

mersi.

 10/18/2006 1:17:12 AM
User is offlineDanTodor
297 posts
4th


Re: cum obtin un fragment de text de pe un website ?!
 (Romania)
Ce mi se pare mie cudat : desi apelezi IE ca si COM, ti se deschide alt browser, daca e default ? Nu ar trebui sa se deschida exact IE ?
In rest, poti sa faci legatura la nivel de IP, formezi cu mina header-ul de HTML, si parsezi raspunsul, dar e cam scarpinat cu dreapta la urechea stinga, imho :)
 10/18/2006 9:24:11 AM
User is offlineGrigore Dolghin
3522 posts
www.class-software.eu
1st






Re: cum obtin un fragment de text de pe un website ?!
 (Romania)
E ciudat, Edi. CreateObject("InternetExplorer.Application") ar trebui sa lanseze internet explorerul, nimic altceva. E ca si cum as zice ca instantiez treeview-ul si in locul lui obtin wordu'.
Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 10/18/2006 11:25:39 AM
User is offlineDAN VASILOIU
39 posts


Re: cum obtin un fragment de text de pe un website ?!
 (Romania)

Poate te ajuta...

http://support.microsoft.com/kb/311306/en-us

 edyshor wrote

salut. mai intai un mic exemplu ...

loIE = CREATEOBJECT("InternetExplorer.Application")
loIE.visible=.f.
llSuccess= loIE.Navigate("http://edyshor-data.blogspot.com")
llSuccess= lWait( loIE )
*- tell to load page, and wait ie to do it
LOCAL oDoc, oElem
oDoc
=loIE.document
oElem=oDoc.getElementById("poem")
x = oElem.innerText

ok, asta merge, dar .. nu-mi place .. de regula gasesc Internet Explorer pe ficare calculator, dar nu este intotdeauna "default browser" .. nu am testat cu firefox, dar eu folosesc avant browser si e default browser .. cand creez obiectul imi deschide un page nou, iar visible=.f. nu mi-l ascunde, iar din experimentele mele cu browser-ul internet explorer aparea un flicker aiurea (inestetic rau de tot)

ce vreau sa fac, e sa obtin innerText-ul tag-ului

cu id-ul "poem" cumva .. fara sa se vada .. am intalnit pe fox.wikis.com o chestie (poate o idee alternativa) "Microsoft.XMLHTTP" .. fragment:

oHTTP = Create Object("Microsoft.XMLHTTP")
oHTTP.Open("GET", 'http://fox.wikis.com/wc.dll?Wiki~WikiRss&details=1', .F.)
oHTTP.Send()

suna a AJAX dar nu am nici cea mai mica experianta cu el ..
cineva de pe site ma poate ajuta sa il folosesc sau poate sa-mi ofere o idee alternativa ?!

nu vreau sa folosesc un ActiveX custom, as prefera sa fac asta din cod, folosind (daca e nevoie API's) doar din ce are sistemul de operare ..
mai e o chestie.. la loIE.Quit() imi da eroare .. IEDispatch error .. etc (si un cod in hexa, nu-mi dau seama ce inseamna)

mersi.

 10/18/2006 3:58:08 PM
User is offlineedyshor
1450 posts
1st




Re: cum obtin un fragment de text de pe un website ?!
 (Romania)
hmm .. poate pentru ca AvantBrowser-ul e construit peste InternetExplorer .. tab-urile deschise contin controlul WebBrowser (banuiesc)  .. poate odata in executie, programul tinde sa captureze orice instantiere programatica e unui nou iexplorer (din codul siteului de ex) si sa-l adauge la lista lui de tab-uri afisand-ul in spatiul lui ..
 
Mersi Dan .. pare sa fie exact ce am nevoie :)
 10/18/2006 3:59:23 PM
User is offlineedyshor
1450 posts
1st




Re: cum obtin un fragment de text de pe un website ?!
 (Romania) Modified By edyshor  on 10/18/2006 5:55:34 PM)
 DanTodor wrote
 poti sa faci legatura la nivel de IP, formezi cu mina header-ul de HTML
 
great ! .. cum ? :)
 
EDIT: DanTodor, sunt inca curios de solutia ta, poate ai un exemplu :)
 
pentru cine mai intereseaza subiectul, casiti mai multe aici http://fox.wikis.com/wc.dll?Wiki~ReadUrl~VFP
 
 10/18/2006 11:55:29 PM
User is offlineDAN VASILOIU
39 posts


Re: cum obtin un fragment de text de pe un website ?!
 (N/A)

Un exemplu cu shell api:

http://www.west-wind.com/presentations/shellapi/shellapi.asp#_The_HTML_Object_Model

si unul cu xmlhttp:

http://www.utmag.com/wconnect/wc.dll?9,7,10,593

 edyshor wrote

salut. mai intai un mic exemplu ...

loIE = CREATEOBJECT("InternetExplorer.Application")
loIE.visible=.f.
llSuccess= loIE.Navigate("http://edyshor-data.blogspot.com")
llSuccess= lWait( loIE )
*- tell to load page, and wait ie to do it
LOCAL oDoc, oElem
oDoc
=loIE.document
oElem=oDoc.getElementById("poem")
x = oElem.innerText

ok, asta merge, dar .. nu-mi place .. de regula gasesc Internet Explorer pe ficare calculator, dar nu este intotdeauna "default browser" .. nu am testat cu firefox, dar eu folosesc avant browser si e default browser .. cand creez obiectul imi deschide un page nou, iar visible=.f. nu mi-l ascunde, iar din experimentele mele cu browser-ul internet explorer aparea un flicker aiurea (inestetic rau de tot)

ce vreau sa fac, e sa obtin innerText-ul tag-ului

cu id-ul "poem" cumva .. fara sa se vada .. am intalnit pe fox.wikis.com o chestie (poate o idee alternativa) "Microsoft.XMLHTTP" .. fragment:

oHTTP = Create Object("Microsoft.XMLHTTP")
oHTTP.Open("GET", 'http://fox.wikis.com/wc.dll?Wiki~WikiRss&details=1', .F.)
oHTTP.Send()

suna a AJAX dar nu am nici cea mai mica experianta cu el ..
cineva de pe site ma poate ajuta sa il folosesc sau poate sa-mi ofere o idee alternativa ?!

nu vreau sa folosesc un ActiveX custom, as prefera sa fac asta din cod, folosind (daca e nevoie API's) doar din ce are sistemul de operare ..
mai e o chestie.. la loIE.Quit() imi da eroare .. IEDispatch error .. etc (si un cod in hexa, nu-mi dau seama ce inseamna)

mersi.

 10/20/2006 4:21:25 PM
User is offlineDanTodor
297 posts
4th


Re: cum obtin un fragment de text de pe un website ?!
 (Romania)
 edyshor wrote
 DanTodor wrote
 poti sa faci legatura la nivel de IP, formezi cu mina header-ul de HTML
 
great ! .. cum ? :)
 
EDIT: DanTodor, sunt inca curios de solutia ta, poate ai un exemplu :)
 
pentru cine mai intereseaza subiectul, casiti mai multe aici http://fox.wikis.com/wc.dll?Wiki~ReadUrl~VFP
 


Pornesc de la ideea ca poti deschide o conexiune TCP/IP.

Pentru o definitie completa, vezi :
http://www.w3.org/Protocols/HTTP/1.0/draft-ietf-http-spec.html

Pe scurt, ca sa primesti fisierul aflat la "http://www.somehost.com/path/file.html" deschizi un socket la www.somehost.com portul 80, si ii trimiti pe socket ceva de genul :
GET /path/file.html HTTP/1.0
From: johndoe@microsoft.com
User-Agent: HTTPTool/1.0
[blank line here]
Si mai departe citesti ce vine pe socket, adica ar trebui sa arate cam asa :
HTTP/1.0 200 OK
Date: Fri, 31 Dec 1999 23:59:59 GMT
Content-Type: text/html
Content-Length: 1354

<html>
<body>
etc...

Sper sa te ajute, si sorry de delay.
 4/21/2007 2:34:10 AM
User is offlineedyshor
1450 posts
1st




Re: cum obtin un fragment de text de pe un website ?!
 (Romania) Modified By edyshor  on 4/21/2007 1:36:34 AM)
Steff mi-a adus aminte de thread-ul asta si gandindu-ma ca poate nu sunt singurul care a avut nevoie de asa ceva, postez in continuare prg-ul care-mi ia exact blocul de text de care am nevoie de pe adresa data. Folosesc functia api URLDownloadToFile:
    DECLARE INTEGER URLDownloadToFile IN urlmon INTEGER, STRING, STRING, INTEGER, INTEGER
Nu apare nici un flicker, nu se leaga de InternetExplorer, doar un mic delay pana da jos informatia de pe internet, apoi obtin ce vreau din fisier.
Exemplu in prg-ul atasat (schimbati extensia din txt in prg).


Edit: Merci DanTudor, nu cred ca am vazut postul tau la vremea respectiva, altfel as fi incercat sa implementez solutia ta :)
get_http_poem.txt 
 6/30/2007 10:31:39 PM
User is offlinealex_pascanu
80 posts


Re: cum obtin un fragment de text de pe un website ?!
 (Romania)

Ideea e cat trebuie sa obtii un stream la url-ul ala in, dot net ai clasele pentru streamuri in system,iar apoi sa-l parcuri cu while si sa citesti din el caracter cu caracter pana ajungi la sfarsitul lui.

Din ce imi aduc eu aminte nush daca in vcx sunt clase pentru lucrul cu streamuri

 7/3/2007 1:14:30 PM
User is offlineedyshor
1450 posts
1st




Re: cum obtin un fragment de text de pe un website ?!
 (N/A)
Alex, nu am nimic cu tine, dar ar trebui totusi sa-ti dai seama ca acest forum este pentru VFP (Visual FoxPro)
Exista si o sectiune dedicata interoperabilitatii intre vfp si .Net asa cum sunt destule forumuri pe net care tintesc spre .Net


 7/3/2007 5:30:53 PM
User is offlinedni
420 posts
2nd


Re: cum obtin un fragment de text de pe un website ?!
 (N/A)
http://news2news.com/vfp/?group=-1&function=590
  Visual FoxPro  COM, DCOM si OLE Automation  cum obtin un fr...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement