Visual Basic.NET - almacenar valores de unr vector dentro de estructura en un archivo de texto

 
Vista:

almacenar valores de unr vector dentro de estructura en un archivo de texto

Publicado por jorge rojas (20 intervenciones) el 30/10/2014 04:22:48
Alguien me puede ayudar?
tengo un vector en una estructura

1
2
3
4
Structure Alumno
        Dim Materiaynotas() As Integer
    End Structure
Dim Alumno1 As Alumno

Necesito guardar los valores del vector en en un archivo de texto

1
2
3
4
5
6
7
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ReDim Alumno1.Materiaynotas(2)
        FileOpen(1, "c:\notas.dat", OpenMode.Random, , , Len(Alumno1))
        Alumno1.Materiaynotas(1) = 3
        'Alumno1.Materiaynotas(2) = 4
        Fileput(1, Alumno1, 1)
    End Sub

No funciona.
Que tengo que hacer?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de giancarlo
Val: 377
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

almacenar valores de unr vector dentro de estructura en un archivo de texto

Publicado por giancarlo (488 intervenciones) el 30/10/2014 15:30:26
si solo quieres grabar, puedes usar streamWriter,


1
2
3
4
5
6
dim fila As List(Of String)'o fila() as string
 Dim sw As IO.StreamWriter = New IO.StreamWriter(archivo, False, System.Text.Encoding.Default)
For Each ele As String In fila
     sw.WriteLine(ele)
Next
sw.Close()


Usando el fileput, recuerda que al declarar matrices, si declaras matriz(1), almacenar 2(las matrices empiezan en cero. con esto funcionara tu codigo

1
2
3
4
5
6
ReDim Alumno1.Materiaynotas(1)
        FileOpen(1, "d:\sss.dat", OpenMode.Random)
        Alumno1.Materiaynotas(0) = 3
        Alumno1.Materiaynotas(1) = 4
        FilePut(1, Alumno1)
        FileClose(1)

y te dejo un ejemplo, extraido de MSDN

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Structure person
    Dim id As Integer
    Dim name As String
End Structure
Dim patientrecord As person
        Dim recordnumer As Integer
        FileOpen(1, "d:\sss.txt", OpenMode.Binary)
        'loop 5 times
        For recordnumer = 1 To 5
            patientrecord.id = recordnumer
            patientrecord.name = "name " & recordnumer
            FilePut(1, patientrecord)
        Next recordnumer
        FileClose(1)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar