Newsgroup: it.comp.lang.visual-basic
Titolo: DATI in stringa  da WebBrowser

[VB6-DATI in stringa da WebBrowser]
Ciao
qualche anima buona mi potrebbe dare una dritta su come copiare in una 
stringa determinati dati in un webbrowser togliendone i caratteri html (vedi 
sotto come faccio ora)?
Infatti avrei un webbrowser dove scarico una pagina e nella quale 
visaualizzo queste scritte che copio incollo al volo...:
[...]
Ref:   ITALIA
Name:GIOVANNI GIOVANNINO
Addr1:VIA VITTORIO 3
Addr2:123456 CITTA PROVINCIA,
Country:ITALIA
Lookups:10500
[...]
ecc.... con altri dati immagini disegni ecc... del sito html
Come potrei farli inserire da WebBrowser in variabile i dati dei "campi":
ref name addr1 addr2 country ecc...come se fosse un text?
Per ora ci riesco copiando tutto il testo in una "stringa clipboard" col 
"Clipboard.GetText" quindi lavorarla e questo più o meno funziona, ma mi 
chiedevo se non  ci fosse qualche cosa d'altro più "veloce" ed "affidabile".
GRAZIE 1000 per qualche consiglio!
Anto 
----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News==----
http://www.newsfeeds.com
 The #1 Newsgroup Service in the World! 120,000+ Newsgroups
----= East and West-Coast Server Farms - Total Privacy via Encryption =----

"ApipApip" <chi...@me.lo> ha scritto nel messaggio
news:1158998...@sp6iad.superfeed.net...

Ciao Anto,
l'oggetto document  del controllo WebBrwoser espone molte proprietà, per
avere ad esempio il testo del Body di una pagina html facento
buf =  Me.WebBroeser1.Document.body.innerText
otterrai il testo senza la formattazione html   se puoi i vari campi sono
identificati a ad esempio da un id Con la Funzione GetElementByID puoi
ritrovare  il singolo elemento e recuperare un elemento per volta.
Spero di averti messo sulla buona strada.
Ciao
-- 
Cinzia
---------------------------------------
|  
http://www.riolab.org
  |
--------------------------------------->

 [...]
E dovrei mettere in variabile stringa quindi
ref = "ITALIA"
Name = "GIOVANNI GIOVANNINO"
addr1 = "VIA VITTORIO 3"
addr2 ecc...
Le variabili di ricerca sono sempre uguali cambiano solo i dati volta per 
volta.
Grazie mille.



Ciao Anto,
la possibilità di usare la funzione GetElementByID, GetElementByName e
GetElementsByTagName dipende da come è fatto l'HTML, se l'html fosse per es:
<div id="ref1">Ref: Italia</div>
<div id="name1"> Name:GIOVANNI GIOVANNINO</div>
facendo
webBorowser1.Document.GetElementByID("ref1").InnerText   otterresti
Ref:Italia
ma avresti bisogno che ogni campo avesse un riferimento univoco
facendo invece
webBorowser1.Document.GetElementsByTagName("Div")
otterrai un array di tutti gli elementi DIV del tuo HTML sui quali potrai
ciclare per ottenere le informazioni che ti servono....
qui trovi  un po' di info
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/browser_control_ovw_entry.asp
ciao


 
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/browser_control_ovw_entry.asp
Grazie mille, molto gentile... purtroppo con l'inglese è dura...
Grazie dei consiglio che sto tentando di "decifrare" ma la mia esperienza in 
merito non mi permette di sfruttare pienamente le tue specifiche.
In pratica il file che raggiungo è o html oppure come mi hai consigliato 
all'inizio, di solo testo (txt ascii) che attualmente sfrutto ma in modo 
piuttosto spartano leggendo riga per riga per trovare REF NAME ADDR1 ADDR2 
ecc.. all'interno di una stringa divenuta txt ma ogni tanto si incasina.
Il testo originale del sito dal quale devo poter leggere questi campi che 
variano solo nei contenuti del database è ad esempio di questo tipo (campi 
sempre uguali mentre i dati cambiano) sono contenuti in questa parte di 
"table" html:
---cut---
<table cellspacing=0 cellpadding=3 border=0>
<tr bgcolor="#FFFFFF"><td align="right">Callsign:</td><td><b><a 
href="/callsign/IL2XXX">IL2XXX</a>&nbsp;&nbsp;&nbsp;</b><span 
class=smaller>ITALY</span></b></td></tr>
<tr bgcolor="#FFFFFF"><td align="right">Name:</td><td><b>GIOVANNI 
GIOVANNINO</b></td></tr>
<tr bgcolor="#FFFFFF"><td align="right">Addr1:</td><td><b>VIA VITTORIO 
4</b></td></tr>
<tr bgcolor="#FFFFFF"><td align="right">Addr2:</td><td><b>123456 CITTÀ XX, 
</b></td></tr>
<tr bgcolor="#FFFFFF"><td 
align="right">Country:</td><td><b>ITALY</b></td></tr>
<tr bgcolor="#FFFFFF"><td 
align="right">Lookups:</td><td><b>10586</b></td></tr>
<tr bgcolor="#FFFFFF"><td 
align="right">&nbsp;</td><td><b>&nbsp;</b></td></tr>
<tr bgcolor="#CCCCCC"><td align="right">QSL Mgr:</td><td><b>BURO + 
EQSL</b></td></tr>
<tr bgcolor="#CCCCCC">
 <td align=right>Coordinates:</td><td><b>46&deg; 0' 0'' N,&nbsp;&nbsp;&nbsp; 
9&deg; 0' 0'' E</b></td></tr>
<tr bgcolor="#CCCCCC"><td align="right">Coordinates:</td><td><b>46 
&nbsp;&nbsp;&nbsp; 9</b></td></tr>
<tr bgcolor="#CCCCCC"><td 
align="right">Grid:</td><td><b>JN45XX</b></td></tr>
<tr bgcolor="#CCCCCC"><td align="right">Born:</td><td><b>1959</b></td></tr>
<tr bgcolor="#CCCCCC"><td align="right">Home Page:</td><td><b><a 
href=
http://www.sito.com
 
target="_blank">
http://www.miotsito
</a></b></td></tr>
<tr bgcolor="#CCCCCC"><td align="right">Updated:</td><td><b>2006-06-03 
06:54:33</b></td></tr>
</table>
---cut---
Oppure leggendolo in secondo tempo in txt con la funzione che mi hai 
passato:
---cut---
IL2XXX  ITALY
Name:GIOVANNI GIOVANNINO
Addr1:VIA VITTORIO 4
Addr2:123456 CITTÀ XX,
Country:ITALY
Lookups:10586
Mgr:BURO + EQSL
Coordinates: 46deg; 0' 0'' N 9deg; 0' 0'' E
Coordinates:46  9
Grid:JN45XX
Born:1959
Home Page:
http://www.sito.com
Updated:2006-06-03 06:54:33
---cut---
contenuti nella variabile stringa "Buffer"
Credo che lavorandolo in testo sia più semplice... ma come mi consigliereste 
di fare per trovare queste varie variabili remote per ogni campo che poi 
dovrei poter clickaci sopra per avere degli altri dettagli che ho in locale 
che abbineranno REMOTO con LOCALE in un altro form.
Grazie mille per un consiglio e magari qualche info di codice!
Grazie ciao


"ApipApip" <chi...@me.lo> ha scritto nel messaggio
news:1159028...@sp6iad.superfeed.net...

Visto com'è l'html in effetti è meglio lavorare con il testo
a prima vista mi pare di capire che ogni record inizia con Name:
se è così mi spezzerei il megabuffer in tanti buffer più piccoli contenenti
solo i dati di ogni record magari con una Split
dim smallbuffer as variant
smallBuffer= Split(buffer, "Name:")
poi con un ciclo lavoro ogni singolo record per prendermi le varie
informazioni e le metto  in una tabella di Access per l'utilizzo futuro
for i = 1 to UBound(smallBuffer)
    Elabora(smallbuffer(i))
next i
La procedura Elabora si cercherà i vari  separatori  Addr1: Addr2:  ecc
oppure con un'altra split sul ":" separi tutti i tag e i valori e poi ti
prendi solo i valori...
Buon frullamento!


 Buon frullamento!
grazie mille per le dritte... utilissime... domani ci sbatto qualche oretta 
per migliorare il tutto...
Grazie dei consigli!


 Buon frullamento!
Grazie a Cinzia, ci sono quasi... ma ho un problema piuttosto grosso che non 
riesco a risolvere:
con un cmd attivo un webbrowser.navigate per aprire la pagina web, poi 
faccio quanto sopra per tradurne i dati...
Purtroppo però dovrebbe partire questa routine SOLO quanto ha finito di 
caricare la pagina.
In pratica come potrei avvisare il programma di partire SOLO quando il 
WEBBROWSER ha caricato la pagina web ed ha finito, pronto per la "ricerca"?
grazie mille...


 WEBBROWSER ha caricato la pagina web ed ha finito, pronto per la "ricerca"?
Evento DocumentComplete
-- 
Friends don't let friends use Windows! 
News 2002 [v 2.07] / StopDialer / PopDuster - 
http://www.socket2000.com
Akapulce portal: 
http://www.akapulce.net

> Evento DocumentComplete
Stavo impazzendo.. non lo trovavo... poi ho cercato nelle routine... :-))
Trovato...grazie mille!


> ---cut---
Ciao Cinzia...
ci sono quasi riuscito ma purtroppo non riesco ad usare il comando SPLIT 
come mi hai consigliato.
Ho cercato qualche esempio con google ma mi da sempre errore suppongo 
utilizzazione totalmente sbagliata. SUl MSN non trovo qualche semplice 
esempio e non riesco a selezionare solo il testo interessato come mi hai 
consigliato.
Avete qualche esempio magari da sottopormi per poter selezionare con split 
ogni campo di cui sopora all'interno del txt?
Scusate e grazie!


"ApipApip" <chi...@me.lo> ha scritto nel messaggio
news:11591264...@sp6iad.superfeed.net...

Ciao Antonio
ecco un esempio:
Dim MyString, MyArray, Msg
MyString = "Name:Antonio  Addr1: Via Roma 123  Addr2: Milano"
MyArray = Split(MyString, ":", -1, 1)
' MyArray(0) contiene "Name".
' MyArray(1) contiene "Antonio Addr1".
' MyArray(2) contiene  "via Roma 123 Addr2".
Msg = MyArray(0) & " " & MyArray(1)
Msg = Msg   & " " & MyArray(2)
MsgBox Msg
Vista la struttura  è però forse meglio che usi vbcrlf come separatore
invece dei due punti  così avrai
MyArray = Split(MyString, vbcrlf , -1, 1)
 ' MyArray(0) contiene "Name: Antonio".
' MyArray(1) contiene "Addr1: Via Roma 123  ".
' MyArray(2) contiene  "Addr2: Milano".
ecc...
-- 
Cinzia
---------------------------------------
|  
http://www.riolab.org
  |
--------------------------------------->
 =----

 Anto
Occhio alle pagine con i frame.
-- 
Salutoni
Sergio
C'è il giorno in cui nasci e quello in cui scegli di vivere
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ecco un esempio:
[...]
Grazie mille... molto gentile.
Procedo alle modifiche del caso... cosě al volo vedevdo il tuo esempio, io 
cannavo l'array e il fatto che la pagina non era caricata e vedevo solo 
parzialmente il file testo.
Si penso che prendo il 'crlf' come separatore sia meglio per evitare che ci 
siano troppi dati inutili nell'array da poi selezionare quindi tagliare solo 
il "Table html" e cercare riga per riga la decina di volte, tagliando quindi 
semplicemente il testo dopo il ":" duepunti.
Ora ho messo la routine di "fine pagina" descritta sopra con la funzione 
"DocumentComplete" e  questa sembra funzioni.
Farň molta attenzione ai frames come consigliatomi da Melchiade Bedrosian 
Baol, per fortuna questa pagina che uso sembra non ne abbia.... al momento.
Procedo col tuo esempio! GRAZZZZZIE 1000
