Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Palinsesto TV - Form1.vb

Form1.vb

Caricato da: Cassin.simone
Scarica il programma completo

  1. 'Palinsesto TV was developed by Simone Cassin
  2. Public Class PalinsestoTv
  3.     'Dichiarazione di: WebBrowser, variabile di tipo String contenente la data come la vogliamo noi...:) e il nome del canale...sempre come lo vogliamo noi...:)
  4.     WithEvents HiddenBrowser As New WebBrowser
  5.     Dim DateNotFormatted As String
  6.     Dim ChannelName As String
  7.     Private Sub Avvio(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  8.         'Aggiungo alla lista delle date la data di oggi e di domani
  9.         ModDate.Items.Add(DateTime.Now.Date)
  10.         ModDate.Items.Add(DateTime.Now.AddDays(1).Date)
  11.         'La data predefinita è quella di oggi
  12.         ModDate.Text = DateTime.Now.Date
  13.         'Il canale predefinito è Rai Uno
  14.         SelectChannel.Text = "Rai Uno"
  15.     End Sub
  16.     Private Sub ChangeChannel(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SelectChannel.SelectedIndexChanged
  17.         'Quale canale è stato selezionato? Un controllo a base di if ed elseif trova la corrispondenza esatta e ne ricava il nome del canale
  18.         If (SelectChannel.Text = "Rai Uno") Then
  19.             ChannelName = "rai uno"
  20.         ElseIf (SelectChannel.Text = "Rai Due") Then
  21.             ChannelName = "rai due"
  22.         ElseIf (SelectChannel.Text = "Rai Tre") Then
  23.             ChannelName = "rai tre"
  24.         ElseIf (SelectChannel.Text = "Rete Quattro") Then
  25.             ChannelName = "rete 4"
  26.         ElseIf (SelectChannel.Text = "Canale Cinque") Then
  27.             ChannelName = "canale 5"
  28.         ElseIf (SelectChannel.Text = "Italia Uno") Then
  29.             ChannelName = "italia 1"
  30.         ElseIf (SelectChannel.Text = "La7") Then
  31.             ChannelName = "la 7"
  32.         ElseIf (SelectChannel.Text = "Mtv") Then
  33.             ChannelName = "mtv"
  34.         End If
  35.         'Ora il browser viene indirizzato sulla pagina corretta...
  36.         HiddenBrowser.Navigate("http://www.miniportale.it/miniportale/tvoggi/programmi.asp?palinsesto=" & ChannelName & "&data=" & DateNotFormatted)
  37.     End Sub
  38.     Private Sub ChangeDate(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ModDate.SelectedIndexChanged
  39.         'Azzero il valore di DateNotFormatted
  40.         DateNotFormatted = ""
  41.         'Dichiaro alcune variabili come la data scelta e l'array della stringa splittata
  42.         Dim DateFormatted As String = ModDate.Text
  43.         Dim DateFormattedArray As Array = Split(DateFormatted, "/")
  44.         'Il contatore inizia al contrario sta volta :P
  45.         Dim Conta As Integer = DateFormattedArray.Length - 1
  46.         While (Conta <> -1)
  47.             DateNotFormatted = DateNotFormatted + DateFormattedArray(Conta)
  48.             Conta = Conta - 1
  49.         End While
  50.         'Ora il browser viene indirizzato sulla pagina corretta...
  51.         HiddenBrowser.Navigate("http://www.miniportale.it/miniportale/tvoggi/programmi.asp?palinsesto=" & ChannelName & "&data=" & DateNotFormatted)
  52.         HiddenBrowser.ScriptErrorsSuppressed = True
  53.     End Sub
  54.     Public Sub HiddenBrowser_Complete() Handles HiddenBrowser.DocumentCompleted
  55.         'Ricavo dalla pagina HTML tutto ciò che mi serve...
  56.         Dim Data As HtmlElementCollection = HiddenBrowser.Document.GetElementsByTagName("tr")
  57.         'Un contatore che inizia dal valore 2 (saltiamo quindi nel ciclo while due righe (una contenente il canale scelto e la data, l'altra è vuota quindi inutile))
  58.         Dim Conta As Integer = 2
  59.         'Dichiarazione di alcune variabili utili...;)
  60.         Dim ElaboratedText As String = ""
  61.         Dim NotElaboratedText As String = Data(2).InnerText
  62.         'Split split...:)
  63.         Dim ArrayData As Array = Split(NotElaboratedText, Environment.NewLine)
  64.         'Ciclo while che analizza il testo ottenuto dal parsing della pagina html e lo elabora
  65.         While (Conta <> ArrayData.Length)
  66.             Dim ArrayRow As Array
  67.             ArrayRow = Split(ArrayData(Conta).ToString, " ")
  68.             Dim IConta As Integer = 2
  69.             If (ArrayData(Conta).ToString <> "") Then
  70.                 If ArrayRow(ArrayRow.Length - 1) <> "" Then
  71.                     While (IConta <> ArrayRow.Length - 1)
  72.                         ElaboratedText = ElaboratedText & ArrayRow(IConta) & " "
  73.                         IConta = IConta + 1
  74.                     End While
  75.                 Else
  76.                     While (IConta <> ArrayRow.Length - 2)
  77.                         ElaboratedText = ElaboratedText & ArrayRow(IConta) & " "
  78.                         IConta = IConta + 1
  79.                     End While
  80.                 End If
  81.             End If
  82.             ElaboratedText = ElaboratedText & Environment.NewLine
  83.             Conta = Conta + 1
  84.         End While
  85.         TextBox1.Text = ElaboratedText
  86.     End Sub
  87. End Class