Oppure

Loading
16/04/09 14:48
Gnune
Ciao a tutti. Spero che qualcuno mi possa aiutare.
Ho la necessitá di creare un programmino in vb che faccia le seguenti operazioni:
1) Apra un file di testo contenente un elenco di indirizzi web.
2) Apra un file di testo contenente delle parole.
3) Apra ad uno ad uno gli indirizzi web e faccia la ricerca di queste parole.
4) Se trova una parola la scrive in una listbox (non mi interessa dove é scritta ma che sia scritta).
5) Tornare al punto 3.

Bene, sono riuscito a farlo utilizzando un codice che ho trovato su questo forum, solo che questo codice lavora su file html, scrive cioé il file html in una textbox multilinea e poi io faccio la ricerca con instr().
Il problema é che ci impiega dai 10 ai 20 secondi (alle volte anche 30) per pagina, mentre a me servirebbe qualcosa di piú rapido. Mediamente internet explorer impiega dai 2 ai 3 secondi per rigenerare una pagina.

Qualcuno ha un´idea di come posso farlo.
Un grazie anticipato a chi mi saprá rispondere.
Giuseppe.
aaa
16/04/09 14:59
GrG
mostra il codice che usi...
aaa
16/04/09 18:17
Gnune
É ancora in stato embrionale, al momento addiziono le parole trovate e l´orario in una listbox.

Dim ST$(5)

Private Sub VediURL(URL As String, Txt As TextBox)
Inet1.OpenURL URL 'apre l' url da noi fornita
Txt = Inet1.OpenURL 'preleva il codice e lo visualizza nella textbox
End Sub

Private Sub EliminaHTML(Txt As TextBox)
If InStr(Txt, "<";) Then
Txt.SelStart = InStr(Txt, "<";) - 1
Txt.SelLength = InStr(Txt, ">";) - Txt.SelStart
Txt.SelText = ""
EliminaHTML Txt
End If
End Sub

Private Sub Command1_Click()
Loop1:
VediURL Text1, Text2
a$ = Text2
For i = 0 To 4
If InStr(a$, ST$(i)) > 0 Then
b$ = Time$ + " " + " " + ST$(i)
List1.AddItem b$
End If
Next
GoTo Loop1:
End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub Form_Load()
' apro l´elenco degli indirizzi web
Open "C:\elenco.txt" For Input As #1
Line Input #1, nome$
Close (1)
Text1 = nome$
' apro il file con le parole da ricercare
Open "C:\parole.txt" For Input As #1
for i=0 to 4
Line Input #1, St$(i)
next
Close(1)
End Sub
aaa
16/04/09 19:55
GrG
mmm.... il codice l'hai fatto tu? E dov'è che hai problemi? cosa non riesci a fare?
aaa
16/04/09 20:18
Gnune
Una parte del codice l´ho trovato su questo forum, io l´ho solo adattato alle mie esigenze.
Questo codice trasferisce nella variabile Text2 tutto il sorgente della pagina, poi io con instr() vado a cercare le parole che mi servono.
Solo che ci mette un sacco di tempo: Se rigenero la pagina sia com internet explorer o firefox ci mette um paio di secondi, qui invece arriva anche a 30 per leggere l´html e fare la ricerca.
Volevo sapere se c´é la possibilitá di snellire questo codice usando il comando webbrowser. Purtroppo ho cercato in rete ma non ho trovato nessun esempio concreto che mi potesse aiutare o qualcosa che mi descrivesse come funziona.
Ciao.
aaa
17/04/09 12:52
GrG
questa sub a che ti serve?

Private Sub EliminaHTML(Txt As TextBox)
If InStr(Txt, "<";) Then
Txt.SelStart = InStr(Txt, "<";) - 1
Txt.SelLength = InStr(Txt, ">";) - Txt.SelStart
Txt.SelText = ""
EliminaHTML Txt
End If
End Sub
aaa
17/04/09 14:58
Gnune
Nel codice originale questa chiamate veniva fatta alla fine:

Private Sub Command1_Click()
Loop1:
VediURL Text1, Text2
a$ = Text2
For i = 0 To 4
If InStr(a$, ST$(i)) > 0 Then
b$ = Time$ + " " + " " + ST$(i)
List1.AddItem b$
End If
Next
EliminaHTML Text2
GoTo Loop1:
End Sub

Credo che dovrebbe azzerare la variabile Text2 (e ti ripeto credo visto che di queste cose non né conosco molto).
Potrei anche avere sbagliato, ed é proprio per questo che sto chiedendo aiuto in questo forum a qualcuno che ne sappia piú di me.
Ciao.
aaa
17/04/09 16:01
GrG
Da quel che vedo mi dai l'idea di uno che diciamo ha appena iniziato... e praticamente ti dovrei fare tutto il codice io... secondo me al momento dovresti cercare di dedicarti di più alla teoria e a progetti più semplici...
aaa