none
File I/O RRS feed

  • Pregunta

  • Hola, estoy tratando de hacer un pequeño ejemplo para escribir y leer datos desde archivos.

    aquí está lo que estoy intentando, pero al mostrar los resultados en pantalla parecen estar erróneos. No sé que estoy haciendo mal...

     Estoy usando Visual Basic.Net 2010, desde ya muchas gracias.

    Structure MiRecord
      Public OrderNumber As Integer
      Public Name As String
    End Structure
    
    Module Module1
    
      Sub Main()
        Console.WriteLine("DOS")
        Console.WriteLine("")
    
        DoExample()
    
        Console.WriteLine("")
        Console.WriteLine("Press a key to finish")
        Console.ReadKey()
      End Sub
    
      Sub DoExample()
        Dim flag As Boolean = True
        Dim value As Integer = 1234
        Dim doublevalue As Double = 567.89
        Dim mytext As String = "Hello how are you"
        Dim myrecord As MiRecord
    
        myrecord.OrderNumber = 321
        myrecord.Name = "text of the record"
    
        ' open a file to write
        FileOpen(1, "D:\mydata.dat", OpenMode.Binary, OpenAccess.Write)
        ' write the data
        FilePut(1, flag)
        FilePut(1, value)
        FilePut(1, doublevalue)
        FilePut(1, mytext) ' write a string
        FilePut(1, myrecord) ' write a struct
        ' close the file
        FileClose(1)
    
        ' anulo todos los datos
        flag = False
        value = 0
        doublevalue = 0.0
        mytext = ""
        myrecord.OrderNumber = 0
        myrecord.Name = ""
    
        ' ahora leo los datos desde archivo
        FileOpen(1, "D:\mydata.dat", OpenMode.Binary, OpenAccess.Read)
        ' leo los datos
        FileGet(1, flag)
        FileGet(1, value)
        FileGet(1, doublevalue)
        FileGet(1, mytext) ' read a string
        FileGet(1, myrecord) ' read a struct
        ' cierro el archivo
        FileClose(1)
    
        ' show the variables in the screen
        Console.WriteLine(flag.ToString)
        Console.WriteLine(value.ToString)
        Console.WriteLine(doublevalue.ToString)
        Console.WriteLine(mytext)
        Console.WriteLine(myrecord.OrderNumber.ToString)
        Console.WriteLine(myrecord.Name)
      End Sub
    
    End Module
    
    
    domingo, 18 de julio de 2010 19:23

Todas las respuestas

  • Ya lo he resuelto. Por si acaso alguien cae en la mismo problema, se resuelve seteando el argumento Recordlength de la función FileOpen(...) a un valor adecuado, por ejemplo 256.

     

    lunes, 19 de julio de 2010 5:44