Public Class Form1
Dim insieme As ArrayList
Dim matrice As String()
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
insieme = New ArrayList
insieme.Add("gongolo")
insieme.Add("mammolo")
insieme.Add("pisolo")
ReDim matrice(insieme.Count)
insieme.CopyTo(matrice)
Debug.Print(matrice(0) & " " & matrice(1) & " " & matrice(2))
End Sub
End Class
gongolo mammolo pisoloBene. Con questo codice ho trascritto il valore di un ArrayList in un array di stringhe.
Adesso il codice che anzichè immettere manualmente gli elementi in un ArrayList li prende da un file.
Creo il file settenani.txt
gongolo pisolo mammolo eolo dotto brontolo cuccioloE adesso lo "prendo" con l'istruzione FileOpen, trascrivendo ogni linea del file in una variabile stringa e apponendolo all'ArrayList, quindi ridimensiono un array di stringhe alla stessa lunghezza dell'ArrayList e vi trascrivo i valori di questo:
Public Class Form1
Dim insieme As New ArrayList
Dim matrice As String()
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim str As String = String.Empty
Dim n As Integer = 1
FileOpen(1, "C:\Users\Antonello\Desktop\settenani.txt", OpenMode.Input)
Do Until EOF(1)
str = LineInput(1)
insieme.Add(str)
Loop
ReDim matrice(insieme.Count)
insieme.CopyTo(matrice)
For Each elemento In matrice
Debug.Print(elemento)
Next
End Sub
End Class
Ecco il risultato nella finestra di debug, dove il programma dice di stampare gli elementi della matrice di stringhe:
gongolo pisolo mammolo eolo dotto brontolo cuccioloDunque l'aver preso le linee del file di testo, l'averle messe in un ArrayList e quindi trascritte in un array di stringhe funziona.
Si potrebbe chiedersi perchè non mettere direttamente tutto in un array di stringhe: il problema è che a ogni mutamento di dimensioni di un array questo viene ritrascritto di sana pianta in un'altra locazione della memoria, e l'operazione è poco efficiente.
Nessun commento:
Posta un commento