[VB.NET] matrice o tipo di dato personalizzato

venerdì 26 febbraio 2010 - 00.21

valix85 Profilo | Newbie

Ciao a tutti, sto scrivendo un programma che parsa un html, poi devo salvare i dati come in una sorta di tabella, pensavo di usare qualcosa di tipo matrice oppure (ricordo da java) creare un tipo di dato con diverse variabili interne e poi creare un arraylist di tante variabili di questo nuovo tipo...

per farla breve parso la pagina, tiro fuori titolo e artista (riga pari titolo, riga dispari artista) e poi devo memorizzarli per fare un'altra ricerca, che mi darà un risultato da aggiungere alla coppia titolo, artista, autore.

ora non so come posso procedere, qualche chiarimento in merito, uso poco vb.net 2005 con .net 2.0

mi chiedevo se esiste una tabella di righe e colonne non inizializzate che con un metodo add posso aggiungere un elemento..che so array di arraylist, può essere un'idea? qualche suggerimento anche sulla sintassi?

grazie in anticipo
www.jks.netsons.org

AntCiar Profilo | Expert

Ciao.

Prova così:


Private Class Canzone Dim _titolo As String = "" Property Titolo() As String Get Return _titolo End Get Set(ByVal value As String) _titolo = value End Set End Property Dim _autore As String = "" Property Autore() As String Get Return _autore End Get Set(ByVal value As String) _autore = value End Set End Property Dim _artista As String = "" Property Artista() As String Get Return _artista End Get Set(ByVal value As String) _artista = value End Set End Property Public Sub New() End Sub Public Sub New(ByVal tt As String, ByVal art As String, ByVal aut As String) Me.Titolo = tt Me.Artista = art Me.Autore = aut End Sub End Class Private ListaCanzioni As Generic.List(Of Canzone) = New Generic.List(Of Canzone) Private Sub LeggiDatiXML() ''per ogni dato letto ListaCanzioni.Add(New Canzone("Titolo", "Artista", "Autore")) End Sub Private Sub scorriCanzoni() Dim i As Integer For i = 0 To ListaCanzioni.Count - 1 MsgBox(ListaCanzioni.Item(i).Titolo & " - " & ListaCanzioni.Item(i).Artista) Next End Sub
Cristian Barca

valix85 Profilo | Newbie

grazie della risposta, ora provo, nel frattempo ho creato un arraylist di arraylist... ora il mio problema è come lo leggo...
mem(i) è il principale e poi a ogni posizione i ho un'altro arraylist di 2 elementi... qualche aiutino?

ho corretto l'attributo artista in link, ora la mia domanda è nel button1 dovrò inizializzare questa classe? e per aggiungere userò LeggiDatiXML giusto? e per ottenere quello nella posizione desiderata?
oppure devo fare un arraylist di canzoni?

grazie
www.jks.netsons.org

AntCiar Profilo | Expert

Ciao.

Ieri sera era un po tardi allora ti ho buttato il codice li.

Il blocco Private Class Canzone ----- End Class lo puoi inserire in una nuova classe e dichiaralo Public invece di Private.

Poi nella tua form inserisci una lista di Canzoni:

Private ListaCanzioni As Generic.List(Of Canzone) = New Generic.List(Of Canzone)

Poi nella tua form dove leggi i dati dall' HTML, nel punto in cui devi aggiungere la terna usa questo codice:

ListaCanzioni.Add(New Canzone("Titolo", "Artista", "Autore"))
(al posto di "Titolo", "Artista", "Autore" devi metterci il riferimento alla tua variabile contenente il dato in questione)


poi quando devi leggere il contenuto della list usa questo pezzo di codice:

Dim i As Integer For i = 0 To ListaCanzioni.Count - 1 MsgBox(ListaCanzioni.Item(i).Titolo & " - " & ListaCanzioni.Item(i).Artista) Next

Ciao

Cristian Barca

valix85 Profilo | Newbie

ciao, sono riuscito a usarlo, grazie mille dell'aiuto, ma una domanda è normale che quando splitto mi aggiunge un carattere speciale? un quadratino? mi tocca sempre rimuovere il carattere in pos 0...
www.jks.netsons.org

AntCiar Profilo | Expert

Ciao.

e' normalissimo. Quando fai lo split per un determinato carattere o stringa, ti viene divisa la tua stringa di partenza in N parti. Ora se la tua stringa inizia o finisce con un carattere particolare (di solito quel quadratino è l'andare a capo), quel carattere ti rimane nell'elemento.
Cristian Barca

valix85 Profilo | Newbie

una domanda, come faccio a identificare quel quadratino? cioè tipo fare un replace di quel quadratin con il vbcrlf ?

ok perfetto, allora sono riuscito a risolvere correttamente il tutto, ora chiedo se possibile, avere una guida sul multithread con vb.net, dovrei fare più di 100 richieste di acquisizione di pagine web ma farle in modo seriale comporterebbe un grande aumento di tempo, dato che molti siti limitano le richieste troppo veloci che so procedere con 5 richieste alla volta...
poi devo capire quando tutte sono state eseguite e solo alla fine stampare i risultati.

per essere più chiaro ho il mio arraylist di Canzone e ogni thread dovrebbe scaricare la pagina html, parsarla, ottenere il link, aggiungerlo alla variabile canzone (creo un metodo tipo setLink e getlink x scriverlo e leggerlo)

Una volta che ho finito di leggere tutta la memoria e che ho fatto tale operazione per ogni coppia titolo artista, e SOLO alla fine di tutti i thread, caricherò una lista con

Titolo - Artista - Link(cliccabile x ascoltarlo nel browser)

ora il mio problema è capire il multithread in vb.net

grazie
www.jks.netsons.org

AntCiar Profilo | Expert

Sul multithread purtroppo non sono molto ferrato.
Spero che qualcuno più ferrato di me possa aiutarti

ciao.

PS: quando hai terminato tutto, ricordati di chiudere il thread.
Cristian Barca

valix85 Profilo | Newbie

si si poi chiudo...intanto aspetto altre risposte, grazie ancora dell'aiuto
www.jks.netsons.org

valix85 Profilo | Newbie

ragazzi sono riuscito quasi a fare tutto, ora mi chiedevo xò come posso fare a fare un link cliccabile dentro una textbox? è possibile?

ora nella textbox2 ottengo questa porcata (senza link cliccabili ovviamente)...

0 ) TITOLO: in my head - ARTISTA jason derulo - LINK http://www.youtube.com/watch?v=8ZbFXQMZxR4&hl=it&gl=IT&client=mv-google
1 ) TITOLO: more than love - ARTISTA amerie - LINK http://www.youtube.com/watch?v=9KvdP0d8Wcc&hl=it&gl=IT&client=mv-google
2 ) TITOLO: dove non ci sono ore - ARTISTA jessica brando - LINK http://www.youtube.com/watch?v=Nlx--Lqxjak&hl=it&gl=IT&client=mv-google
3 ) TITOLO: il linguaggio della resa - ARTISTA tony - LINK http://www.youtube.com/watch?v=Vzg1ZLYtHZ8&hl=it&gl=IT&client=mv-google
4 ) TITOLO: caso mai - ARTISTA laura pausini - LINK http://www.youtube.com/watch?v=t6ER9b3Fw2g&hl=it&gl=IT&client=mv-google
5 ) TITOLO: meno male - ARTISTA simone cristicchi - LINK http://www.youtube.com/watch?v=MtgIVsM96JM&hl=it&gl=IT&client=mv-google
6 ) TITOLO: la cometa di halley - ARTISTA irene grandi - LINK http://www.youtube.com/watch?v=HgiSOa58uFU&hl=it&gl=IT&client=mv-google
7 ) TITOLO: ricomincio da qui - ARTISTA malika ayane - LINK http://www.youtube.com/watch?v=e-Bvr9RjxxY&hl=it&gl=IT&client=mv-google

vorrei che il link sia cliccabile...cosi che mi apre nel browser di sistema, in una nuova scheda la pagina, è possibile?
www.jks.netsons.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5