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 |