Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    74

    [VB.NET] manipolazione stringa

    Ciao a tutti

    Ho qualche difficoltà a manipolare un testo html sono riuscito a togliere tutto quello che non mi serve tranne gli spazi

    codice:
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Dim testo As String
            Dim numeri As String
            Dim URL As String
            URL = "http://www.lottomaticaitalia.it/home/index.html"
            Dim objScaricaURL As New ScaricaURL
            objScaricaURL.SetURL(URL)
            testo = System.Text.RegularExpressions.Regex.Replace(objScaricaURL.Scarica, "<[^>]*>", "")
            numeri = testo.Substring(7375, 1820)
            numeri = numeri.Replace(" ", "")
            Me.TextBox1.Text = numeri
        End Sub

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,477

    Re: [VB.NET] manipolazione stringa

    Originariamente inviato da wjzard
    Ho qualche difficoltà a manipolare un testo html sono riuscito a togliere tutto quello che non mi serve tranne gli spazi
    E qual è il problema specifico? O meglio, che tu debba togliere gli spazi è chiaro, ma a quale scopo? Fai un esempio dell'input che devi gestire e dell'output che stai cercando di ottenere.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    74
    allora in questa parte del codice ho preso quello che mi interessa elaborare del file html
    codice:
    testo = System.Text.RegularExpressions.Regex.Replace(objScaricaURL.Scarica, "<[^>]*>", "")
            numeri = testo.Substring(7375, 1820))
    il testo che mi ritrovo però ha ancora molti spazi come puoi vedere qui



    vorrei avere come output cosi

    1 2 3 4 5 6 7 8 9 10 ...........

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Per togliere gli spazi basta fare un loop sulla stringa ed eliminarli.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    74
    ho provato a fare cosi ma non funziona

    codice:
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Dim testo As String
            Dim numeri As String = ""
            Dim t As String = " "
            Dim URL As String
            Dim separatore() As Char = {" "c}
            Dim array() As String
            URL = "http://www.lottomaticaitalia.it/home/index.html"
            Dim objScaricaURL As New ScaricaURL
            objScaricaURL.SetURL(URL)
            testo = System.Text.RegularExpressions.Regex.Replace(objScaricaURL.Scarica, "<[^>]*>", "")
            testo = testo.Substring(7375, 1820)
            array = testo.Split(separatore, StringSplitOptions.None)
            For i As Integer = 0 To (array.Length - 1)
                If (String.IsNullOrEmpty(array(i)) = True) Then
                    numeri &= array(i) & t
                End If
    
            Next
            Me.TextBox1.Text = numeri
        End Sub

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    74
    ho risolto cosi

    codice:
    For i As Integer = 0 To (array.Length - 1)
                If (String.IsNullOrEmpty(array(i)) = False) Then
                    numeri &= array(i).Trim & t
                    j += 1
                    If j = 6 Then
                        numeri &= Environment.NewLine
                        j = 0
                    End If
                End If
    
            Next
    se esiste un modo migliore per farlo accetto volentieri suggerimenti

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    74
    solo che questa parte continua a non funzionare

    codice:
     Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
            Dim j As Integer = 0
            Dim spazio As String = Environment.NewLine
            Dim testo As String
            Dim numeri As String = ""
            Dim t As String = "  "
            Dim URL As String
            Dim separatore() As Char = {" "c}
            Dim array() As String
            URL = "http://www.lottomaticaitalia.it/lotto/home/index.html"
            Dim objScaricaURL As New ScaricaURL
            objScaricaURL.SetURL(URL)
            testo = System.Text.RegularExpressions.Regex.Replace(objScaricaURL.Scarica, "<[^>]*>", "")
            testo = testo.Substring(6630, 550)
            array = testo.Split(separatore, StringSplitOptions.None)
            For i As Integer = 0 To (array.Length - 1)
                If (String.IsNullOrEmpty(array(i)) = False) Then
                    numeri &= array(i).Trim & t
                    j += 1
                    If j = 11 Then
                        numeri &= spazio
                        j = 0
                    End If
                End If
    
            Next
    
            Me.TextBox1.Text = "Estrazioni del 10 eLotto" & spazio & spazio & j
        End Sub
    praticamente la riga

    codice:
      array = testo.Split(separatore, StringSplitOptions.None)
    che dovrebbe suddividere la stringa in tanti array non viene presa in considerazione e quindi nel ciclo for le dimensione dell array rimangono a 1 e termina praticamente copiando tutta la stringa come era prima

  8. #8
    Io mi sbatterei di meno ed userei un controllo WebBrowser e Document.Body.InnerHtml (non si può usare Document.Body.InnerText, purtroppo, perché vengono eliminati gli spazi tra i numeri, visto che sono posti in una tabella)

    codice:
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
            Dim URL As String = "http://www.lottomaticaitalia.it/home/index.html"
    
            WebBrowser1.Navigate(URL)
    
        End Sub
    
        Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    
            Dim Testo As String = WebBrowser1.Document.Body.InnerHtml
    
            Testo = Testo.Substring(Testo.IndexOf("<DIV class=caption>Ecco i 20 numeri vincenti del"))
            Testo = Testo.Substring(Testo.IndexOf("<TBODY>") + 9)
            Testo = Testo.Substring(0, Testo.IndexOf("</TBODY>"))
            Testo = Testo.Replace("<TR>", "").Replace("</TR>", "").Replace("<TD>", "").Replace("</TD>", " ")
            Testo = Testo.Replace(vbCr, "").Replace(vbLf, "")
    
            TextBox1.Text = Testo
    
        End Sub
    Bye!

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    74
    non ho capito il tuo esempio in ogni capo il metodo che ho fatto per trovare i numeri del lotto non funziona molto bene perché ho notato che il codice html anche se di poco cambia ogni giorno e i numeri quindi non vengono fuori tutti

    l unica cosa che mi viene in mente è fare una ricerca mirata con una stringa per esempio

    si potrebbe formattare tutto il codice html togliendo tutto quello che non serve con questo algoritmo

    testo = System.Text.RegularExpressions.Regex.Replace(objSc aricaURL.Scarica, "<[^>]*>", "")

    e poi togliere tutti gli spazi che sono superflui in modo tale da avere una stringa molto compatta dopo fare una ricerca nella stringa per esempio ricercare la parola bari quando viene trovata copiarla in una struttura con le successive 5 parole che corrispondono hai numeri.

    qualche consiglio? secondo vuoi può funzionare ?

  10. #10
    Scusa, hai provato ad inserire nel progetto un controllo WebBrowser e fare un copia - incolla del mio codice?

    Sul mio PC funziona perfettamente e visualizza i 20 numeri in fila separati da uno spazio, come vorresti te.

    Di più nin zo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.