Assegnare i dati di una TextArea a una TableView
Il caso è quello in cui, avendo una stringa di singoli valori in una TextArea, vogliamo trasferire tali valori in una TableView formata da due colonne, e in modo tale che nella prima colonna andranno i dati stringa che si trovano nelle posizioni dispari all'interno dell'intera stringa, e nella seconda colonna quei dati che si trovano nelle posizioni pari.
Se ad esempio nella TextArea è presente questa stringa:
0 aaa 1 bbb 2 ccc 3 ddd 4 eee 5 fff 6 ggg
si desidera che nella prima colonna siano inseriti le parole-dato presenti nelle posizioni dispari, e quindi: 0, 1, 2, 3, 4, 5 e 6; nella seconda invece siano inserite: aaa, bbb, ccc, ddd, eee, fff e ggg.
Altresì si intende non includere all'interno delle celle della TableView il carattere dello spazio che separa ogni singola parola-dato presente nella stringa.
Mostriamo un possibile semplice codice:
Public Sub Form_Open() TextArea1.Text = "0 aaa 1 bbb 2 ccc 3 ddd 4 eee 5 fff 6 ggg" ' Per ora crea una semplice "TableView" di base: With TableView1 .Rows.Count = 2 .Columns.Count = 2 End With End Public Sub Button1_Click() Dim ss As String[] ' Rimuove gli spazi dalla stringa di valori, in modo da avere solo valori numerici: ss = Split(TextArea1.Text, Chr(32)) ' Assegna il numero corretto e utile di righe alla "TableView": TableView1.Rows.Count = ss.Count / 2 ' Identifica ogni riga della "TableView": For r As Short = 0 To TableView1.Rows.Max ' Identifica le due colonne della "TableView": For c As Byte = 0 To 1 ' Assegna il valore del primo elemento esistente della tabella “ss” alla colonna corrispondente: TableView1[r, c].Text = ss[0] ' Eliminiamo il primo elemento dell'array “ss”, in modo che il nuovo primo elemento sia quello successivo all'elemento eliminato: ss.Delete(0, 1) Next Next End