Lo que quiero hacer es rellenar una matriz previamente creada en el programa, desde un archivo txt en el que estarían almacenados los datos. Los datos dentro del txt los puedo poner como más convenga para hacerlo.
Muchas gracias
Tendrás que determinar como harás la extracción de las subcadenas para asignarle luego el valor correspondiente a la matriz, por ejemplo, luego de obtener el contenido del archivo, puedes usar el split para separarlo por líneas y asignar los valores resultantes o separarlo por cualquier caracter, como gustes.
El manejo de archivos se ha tratado varias veces, usa el buscador, lo demás es pan comido :xD
se me ocurre mostrarte el como hacerlo sin tanta bronca e inclusive con tipos aca te van (el Typo de datos Polygon usa matrix je) este es el codigo que uso yo para leer archivos de tipo Mesh (como los .x que genera Studio 3D)
agrega 3 textbox con opcion multilinea=true ejecutalo y ve las acciones
1.- se crean los datos aleatoriamente
2.- se visualisan los datos (los generados aleatoriamente)
3.- se graban los datos en un archivo 'X'.
4.- se descarga de memoria los datos.
5.- se visualisan los datos (oviamente no hay ninguno)
5.- se vuelven a cargar los datos
6.- se visualisan los datos (los que se cargaron en el archivo 'X')
Private Type VECTOR
Xx As Single
Yy As Single
Zz As Single
End Type
Private Type VERTEX
Nor As VECTOR
Pos As VECTOR
End Type
Private Type POLYGON
Verts(2) As VERTEX
End Type
Private polyData() As POLYGON
Private Sub Form_Load()
randomize
ReDim polyData(10)
Dim FILE As Integer: FILE = FreeFile
For i = 0 To 10 Step 1
For a = 0 To 2 Step 1
polyData(i).Verts(a).Nor.Xx = a * 1 + b + Int(Rnd(1) * 100)
polyData(i).Verts(a).Nor.Yy = a * 1 + b + Int(Rnd(1) * 100)
polyData(i).Verts(a).Nor.Zz = a * 1 + b + Int(Rnd(1) * 100)
polyData(i).Verts(a).Pos.Xx = a * 1 + b + Int(Rnd(1) * 100)
polyData(i).Verts(a).Pos.Yy = a * 1 + b + Int(Rnd(1) * 100)
polyData(i).Verts(a).Pos.Zz = a * 1 + b + Int(Rnd(1) * 100)
Next a
Next i
visualisar Text1
Open "d:\aaa.txt" For Binary As FILE
Put #FILE, , polyData()
Close #FILE
'vasiamos todos los datos
For i = 0 To 10 Step 1
For a = 0 To 2 Step 1
polyData(i).Verts(a).Nor.Xx = 0
polyData(i).Verts(a).Nor.Yy = 0
polyData(i).Verts(a).Nor.Zz = 0
polyData(i).Verts(a).Pos.Xx = 0
polyData(i).Verts(a).Pos.Yy = 0
polyData(i).Verts(a).Pos.Zz = 0
Next a
Next i
'Fin
visualisar Text2
Open "d:\aaa.txt" For Binary As FILE
Get #FILE, , polyData
Close FILE
visualisar Text3
End Sub
Sub visualisar(textbox As textbox)
For i = 0 To 10 Step 1
For a = 0 To 2 Step 1
textbox = textbox & vbNewLine & polyData(i).Verts(a).Nor.Xx
textbox = textbox & vbNewLine & polyData(i).Verts(a).Nor.Yy
textbox = textbox & vbNewLine & polyData(i).Verts(a).Nor.Zz
textbox = textbox & vbNewLine & polyData(i).Verts(a).Pos.Xx
textbox = textbox & vbNewLine & polyData(i).Verts(a).Pos.Yy
textbox = textbox & vbNewLine & polyData(i).Verts(a).Pos.Zz
Next a
Next i
End Sub
Al ejecutarlo se crea el archivo 'X' y al abrirlo veras algo similar a esto xP:
ˆB A B B pB B ŽB A À@ @B ÈA øA ŠB ¬B B <B ´B XB €@ hB B šB PB „B –B ÄB 0A ŒB tB –B ÀB ÆB ‚B B ðA xB @ B HB ÐA $B dB 4B ¸A 8B ÂB ÈB tB B B ÂB ºB ¨A œB €? œB tB €B A €? ¤B ŠB B B ”B B `A èA PB ŒB ”B B pA šB tB ,B dB ðA ²B °A ŒB žB `A ŠB ÆB ˜A TB `A A ¢B @A PA ¤B DB LB ¦B (B ÄB `B B ¬B TB \B ªB ŒB ªB 4B ÈB ¼B `A PB ¤B ðA ŠB ÀA ¸B xB àA ˜A ¸A \B ¸A PB PA \B 4B 8B |B @ ²B ÈA ÆB €? ¨A A B ,B \B `B ¸B @B œB A ÂB hB ¢B ºB €B B ˆA pB B ˆB €? ÄB ®B ¤B $B ”B A ¼B ªB A ¬B \B 8B šB ŒB tB °A À@ 4B ŒB pA ÂB ÀB °B ¸B À@ ŠB |B œB À@ ¾B èA –B ŠB ®B @B €B ¶B ¬B @ œB B ¨A |