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