• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Julia

webbrowser

31 mensagens neste tópico

Boas Pessoal.

Eu num programa tenho este codigo

        var_codhtml = WebBrowser1.DocumentText
        var_semtags = removerTags(var_codhtml)

        'guarda o texto já sem as TAGS HTML
        Dim objStream As New System.IO.FileStream("C:\euribor.text", IO.FileMode.OpenOrCreate)
        Dim Arq As New System.IO.StreamWriter(objStream)
        Arq.WriteLine(var_semtags) 'guarda o que está na var num ficheiro de texto
        Arq.Close()

        BT_adqurir.Visible = True

E quando o webbrowser conclui de carregar a página ele passa o codigo fonte sem tags para um TXT.

Mas noutro programa Semelhante, tenho o mesmo codigo

        MsgBox(WebBrowser1.DocumentText)


        var_codHTML = WebBrowser1.DocumentText
        var_semTAGS = removerTAGS(var_codHTML)

        'Guarda texto sem TAGS num .txt
        Dim objStream As New System.IO.FileStream("C:\taxa_conversaoEuro.txt", IO.FileMode.OpenOrCreate)
        Dim arq As New System.IO.StreamWriter(objStream)
        arq.WriteLine(var_semTAGS)
        arq.Close()

E ele já não passa o codigofonte para a o .txt =/

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ao meter o codigo a andar e mete-lo a parar na instrução que diz que a var_codHTML=webbrowser1.documenttext ele diz-me que no webbrowser.documenttext "Message = "O sistema não conseguiu localizar o ficheiro especificado. (Excepção de HRESULT: 0x80070002)""

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Verificas-te primeiro se o webbrowser ja concluiu o load a pagina?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim, metiu visible e tudo, até para ajudar meti a msgbox a devolver o titlo da pagina qd documentcomplete! e ele devolve, mas agora o documenttext=S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o mais engraçado, é que ontem isto estava a funcionar bem  :eek:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para ele mandar para o .txt tou a usar esta codigo

    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        var_codHTML = WebBrowser1.DocumentText
        var_semTAGS = removerTAGS(var_codHTML)

        'Guarda texto sem TAGS num .txt
        Dim objStream As New System.IO.FileStream("C:\taxa_conversaoEuro.txt", IO.FileMode.OpenOrCreate)
        Dim arq As New System.IO.StreamWriter(objStream)
        arq.WriteLine(var_semTAGS)
        arq.Close()



    End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

a ordem em que as coisas estão não tem nada a ver pois nao?

É que num tenho o form_load, depois uma função, dps a evento no button click, e só depois é que tenho o webbrowser complete (Neste dá bem)

E no que dá mal tenho formload função e webbrowser complete!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Imports System.IO
Imports System.Text.RegularExpressions
Public Class Form1
    Dim var_codHTML As String
    Dim var_semTAGS As String
    Dim valordolar As Double
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        WebBrowser1.Navigate("http://www.ecb.europa.eu/stats/exchange/eurofxref/html/index.en.html")
        Dim stream As New IO.StreamWriter("C:\taxa_conversaoEuro.txt", IO.FileMode.OpenOrCreate)
        stream.WriteLine("")
        stream.Close()
        Label3.Visible = False





    End Sub

    Public Function removerTAGS(ByVal HTML As String) As String
        'remove tags HTML
        Return System.Text.RegularExpressions.Regex.Replace(HTML, "<[^>]*>", " ")

    End Function



    Private Sub BT_convert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_convert.Click
        Dim strTaxaEuro As String
        Dim intTemp As Integer
        Dim regex As New Regex("\s{2,}")
        var_semTAGS = regex.Replace(var_semTAGS.Trim(), " ")
        intTemp = var_semTAGS.IndexOf("1 €")
        strTaxaEuro = var_semTAGS.Substring(intTemp)
        strTaxaEuro = strTaxaEuro.Substring(0, strTaxaEuro.IndexOf("USD"))

        Dim strTexto As String
        strTexto = strTaxaEuro
        strTexto = strTexto.Substring(strTexto.IndexOf("=") + 1)
        strTexto = strTexto.Replace(".", ",")
        valordolar = Double.Parse(strTexto)
        Label3.Visible = True
        Label3.Text = "1€=" & valordolar & "$"


        If radioBT_euros.Checked Then
            Dim resultado As Double

            If TXT_euros.Text = "" Then
                MsgBox("Tem de definir um valor para converter")
                TXT_euros.Focus()
            Else
                resultado = valordolar * TXT_euros.Text
                TXT_dolares.Text = Math.Round(resultado, 3)
            End If
        ElseIf radioBT_dolares.Checked Then
            Dim resultado As Double

            If TXT_euros.Text = "" Then
                MsgBox("Tem de definir um valor para converter")
                TXT_euros.Focus()
            Else
                resultado = TXT_euros.Text / valordolar
                TXT_dolares.Text = Math.Round(resultado, 3)
            End If
        Else
            MsgBox("Tem de Selecionar uma das opçoes")
        End If

    End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

esse é o que dá erro. O que dá certo é este

Imports System.IO
Imports System.Text.RegularExpressions

Public Class Form1
    Dim var_semtags As String
    Dim var_codhtml As String
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        WebBrowser1.Navigate("http://www.bpiinvestimentos.pt/Mercados/QuadroCotacoesIndexantes.asp")

        Dim stream As New IO.StreamWriter("C:\euribor.text", IO.FileMode.OpenOrCreate)
        stream.WriteLine("")
        stream.Close()

        Label1.Visible = False
        Label2.Visible = False
        Label3.Visible = False
        Label4.Visible = False
        Label5.Visible = False



    End Sub
    Public Function removerTags(ByVal HTML As String) As String
        'Função para remover TAGS HTML
        Return System.Text.RegularExpressions.Regex.Replace(HTML, "<[^>]*>", " ")
    End Function
    Private Sub BT_retirarinfo_Click(ByVal sescnder As System.Object, ByVal e As System.EventArgs) Handles BT_retirarinfo.Click
        'procura no .txt a palavra EURIBOR 12 Meses, copia apartir dai, até LIBOR, e envia para a txtbox
        Dim strEuribor As String
        Dim intTemp As Integer
        Dim regex As New Regex("\s{2,}")
        var_semtags = regex.Replace(var_semtags.Trim(), " ")
        intTemp = var_semtags.IndexOf("EURIBOR 12 Meses")
        strEuribor = var_semtags.Substring(intTemp)
        strEuribor = strEuribor.Replace(" ", "  ")
        strEuribor = strEuribor.Substring(0, strEuribor.IndexOf("LIBOR"))

        TXT_pretendido.Text = strEuribor
        Label1.Visible = True
        Label2.Visible = True
        Label3.Visible = True
        Label4.Visible = True
        Label5.Visible = True

    End Sub
    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        var_codhtml = WebBrowser1.DocumentText
        var_semtags = removerTags(var_codhtml)

        'guarda o texto já sem as TAGS HTML
        Dim objStream As New System.IO.FileStream("C:\euribor.text", IO.FileMode.OpenOrCreate)
        Dim Arq As New System.IO.StreamWriter(objStream)
        Arq.WriteLine(var_semtags) 'guarda o que está na var num ficheiro de texto
        Arq.Close()
    End Sub
End Class

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tens ai uma baralhação de codigo.... porque estas a tentar usar o codigo que ja aqui foi postado sem tentares entenderes como funciona

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

LOL, claro que sei...

O codigo que já tinha sido aqui postado foi para o trabalho do meu irmão lol

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

e tanto sei, que já tinha feito, ficou a funcionar. Agora quando peguei é que deixou de funcionar. Vou tentar refazer todo, e organiza-lo para ver dá ou nao!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tenta assim

Imports System.IO
Imports System.Text.RegularExpressions

Public Class Form1
    Dim var_semtags As String
    Dim var_codhtml As String
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        
WebBrowser1.Navigate("http://www.ecb.europa.eu/stats/exchange/eurofxref/html/index.en.html")


    End Sub
    


Public Function removerTAGS(ByVal HTML As String) As String
        'remove tags HTML
        Return System.Text.RegularExpressions.Regex.Replace(HTML, "<[^>]*>", " ")

    End Function



    Private Sub BT_convert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_convert.Click
        Dim strTaxaEuro As String
        Dim intTemp As Integer
        Dim regex As New Regex("\s{2,}")
        var_semTAGS = regex.Replace(var_semTAGS.Trim(), " ")
        intTemp = var_semTAGS.IndexOf("1 €")
        strTaxaEuro = var_semTAGS.Substring(intTemp)
        strTaxaEuro = strTaxaEuro.Substring(0, strTaxaEuro.IndexOf("USD"))

        Dim strTexto As String
        strTexto = strTaxaEuro
        strTexto = strTexto.Substring(strTexto.IndexOf("=") + 1)
        strTexto = strTexto.Replace(".", ",")
        valordolar = Double.Parse(strTexto)
        Label3.Visible = True
        Label3.Text = "1€=" & valordolar & "$"


        If radioBT_euros.Checked Then
            Dim resultado As Double

            If TXT_euros.Text = "" Then
                MsgBox("Tem de definir um valor para converter")
                TXT_euros.Focus()
            Else
                resultado = valordolar * TXT_euros.Text
                TXT_dolares.Text = Math.Round(resultado, 3)
            End If
        ElseIf radioBT_dolares.Checked Then
            Dim resultado As Double

            If TXT_euros.Text = "" Then
                MsgBox("Tem de definir um valor para converter")
                TXT_euros.Focus()
            Else
                resultado = TXT_euros.Text / valordolar
                TXT_dolares.Text = Math.Round(resultado, 3)
            End If
        Else
            MsgBox("Tem de Selecionar uma das opçoes")
        End If

    End Sub





    End Sub
    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted


	var_codHTML = WebBrowser1.DocumentText
        var_semTAGS = removerTAGS(var_codHTML)

        'Guarda texto sem TAGS num .txt
        Dim objStream As New System.IO.FileStream("C:\taxa_conversaoEuro.txt", IO.FileMode.OpenOrCreate)
        Dim arq As New System.IO.StreamWriter(objStream)
        arq.WriteLine(var_semTAGS)
        arq.Close()

    End Sub
End Class

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ves como nao é por ter sido codigo tirado daqui?

O controlo webbrowser está a atrofiar com a página que eu lhe indico que ele tem de ir!

Prq se meter no google, ele já guarda o codigo fonte!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nao testei!

O problema nao era do codigo, é mesmo o webbrowser que nao está a devolver o codigofonte da página pedida. mas por exemplo do google já devolve!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

primeiro testa meter o codigo como te dei, não vou te esplicar algo que eu não sei se está correcto

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora