Newsgroup: it.comp.lang.visual-basic
Titolo: leggere da VB pagine html

Salve, sto cercando di realizzare un applicazione che interagisca con pagine
html,  siano esse html pure o asp/java.
Fino ad ora sono riuscito a passare i parametri che mi occorrono per
arrivare alla pagina di destinazione, ora devo riuscire a leggere i dati
visualizzati nella pagina ( sono in formato tabella ) , ma non riesco a
venirne fuori.
Avete idea di come si può realizzare ??
o se esiste documentazione da cui attingere per capire come interfacciarmi
con pagine Html ?
Grazie in anticipo per l'aiuto.
Saluti Marco.

 ha scritto nel messaggio
news:cip4oq$gf0$1...@newsread.albacom.net...


 ha scritto nel messaggio
news:JeG4d.17486$Ie2...@tornado.fastwebnet.it...


una volta che sei arrivato alla pagina con webbrowser
c'è la proprietà Document (pagina organizzata secondo l'object library di
IE)
da qui hai accesso a tutti gli oggetti della pagina (io faccio cosi)
su MSD trovi tutto basta che cerchi Document

--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ha scritto nel messaggio
news:80Z19Z204Z57Y1...@usenet.libero.it...


 Grazie Marco.
*se* ho capito, oltre al wb metti in project|references anche
ms html object library
poi v. codice.
hth, j.
Public Sub Sorgente()
'    On Error GoTo errman
    Dim s As String
    Dim HtmlDoc As HTMLDocument
    Set HtmlDoc = frmWww.WB1.Document
    s = HtmlDoc.body.innerHTML
    Dim fNum As Long, FName As String
    FName = ChekSlash(App.Path) & "innerhtml.txt"
    fNum = FreeFile
    Open FName For Output As #fNum
    Print #fNum, s
    Close #fNum
    FileExec FName
    s = HtmlDoc.body.innerText
    FName = ChekSlash(App.Path) & "innertext.txt"
    fNum = FreeFile
    Open FName For Output As #fNum
    Print #fNum, s
    Close #fNum
    FileExec FName
    s = HtmlDoc.documentElement.outerHTML
    FName = ChekSlash(App.Path) & "outerhtml.txt"
    fNum = FreeFile
    Open FName For Output As #fNum
    Print #fNum, s
    Close #fNum
    FileExec FName
    Set HtmlDoc = Nothing
    Exit Sub
errman:     MsgBox Error
End Sub

Una volta che con il webcontrol sei sulla pagina che contiene la tua tabella
fai una cosa del genere :
dim TB as object
dim RigaDati as object
' Wb1.document rappresenta la pagina visualizzata sul webcontrol
' Wb1.document.All è una collezione che contiene tutti gli oggetti della
pagina
' X è l'indice della tua tabella nella pagina (questo lo devi trovare)
 Set TB = Wb1.document.All.Item(X)
 For J = 0 To TB.rows.length - 1
  Set RigaDati = TB.rows.Item(J)
  For I= 0 to RigaDati.cells.length-1
   Print RigaDati.cells(I).outerText
  Next I
 Next J
Se la pagina contiene frame devi prima trovare il frame e applicare quello
scritto sopra all'oggetto document del frame che contiene la tua tabella
le dichiarazioni come object le puoi sostituire con i tipi specifici che
adesso non ricordo
spero di essere stato chiaro


In attesa di vostre dritte, ieri ho continuato a girare per i gruppi e per
la rete, ed ho trovato un trhead interessante da cui ho preso un pezzo di
codice che vi allego...
Dim HtmlDoc As IHTMLDocument2
Dim htmlFrame As IHTMLWindow2 '
    Set HtmlDoc = webbrowser1.Document
'    Set htmlFrame = htmlDoc.frames("contratto")
'    htmlFrame.focus
    Clipboard.Clear
    webbrowser1.ExecWB OLECMDID_SELECTALL, OLECMDEXECOPT_DONTPROMPTUSER, 0,
0
    webbrowser1.ExecWB OLECMDID_COPY, OLECMDEXECOPT_DONTPROMPTUSER, 0, 0
    Dim strRec As String
    strRec = Clipboard.GetText
    RichTextBox1.Text = strRec
    End If
con questo codice riesco a leggere i dati di una pagina html standard, e
diciamo quindi che una parte del mio problema l'ho risolto.
Purtroppo devo interfacciarmi anche con una pagine contenente dei frame ed
all'interno dei frame delle tabelle, con mio dispiacere il codice sopra
riportato non funziona.
Mi riesce difficile capire come si chiama il frame, esiste un qualche modo ,
a parte visulazzare la pagina da internet in formato html..


 ha scritto nel messaggio
news:2rrfjeF...@uni-berlin.de...


se ti interessa il codice html della pagina io in genere seleziono tutto
ctrl+c e incollo su frontpage e da li mi studio la pagina
faccio un ciclo su Wb1.document.All.length
e per ogni elemento prendo Wb1.document.All(I).tagname &
Wb1.document.All(I).name & Wb1.document.All(I).Value
se la pagina ha frame tutto lo devi appricare al document del frame(che è
una pagina per i fatti suoi) es:
Wb1.document.frames(0).document.All(I).tagname


 ha scritto


Grazie Luca, mi ci sto applicando un pochino in questi giorni e qualcosa sta
venendo fuori..
Ho un dubbio, come faccio a capire quali sono le proprietà di un elemento
( e le successive ), ad esempio Wb1.document.All(I).tagname
dove tagname non é riportato da nessuna parte.
Dove posso guardare ?
Saluti Marco.


Cerca su msdn Document e fra le scelte che ti propone scegli Internet
Explorer Platform SDK questo è il punto di inizio da qui vedi le proprietà i
metodi e soprattutto le collezioni di oggetti che ti offre


 ha scritto nel messaggio
news:JeG4d.17486$Ie2...@tornado.fastwebnet.it...


 ha scritto nel messaggio
news:0KT6d.18533$75.8...@news3.tin.it...


Ricominciamo da qui.....
Sono riuscito finalmente a capire come si chiama il frame...
Ho provato ad applicare il codice da te suggerito, ma mi scontro con
l'indice della tabella.....
Ho azzerato tutto..
Mi sono costruito una semplicissima pagina statica, su cui ho disegnato una
tabella e sto lavoro su quella.
Il mio problema é che non capisco come trovare l'indice della tabella, dò
per scontato che essendoci una tabella sola l'indice non possa essere che
(0), ma se metto 0 nel tuo codice, si incazza....
Sono di nuovo fermo..


 ha scritto nel messaggio
news:cjh2pp$k6u$1...@newsread.albacom.net...


 ha scritto nel messaggio
news:oMw7d.27615$75.12...@news3.tin.it...


 ha scritto nel messaggio
news:cjr5l7$7u5$1...@newsread.albacom.net...
