Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: javier234- en 4 Marzo 2006, 17:26 pm



Título: Archivos Random en VB 2005 Express
Publicado por: javier234- en 4 Marzo 2006, 17:26 pm
Hola a todos

Alguien sabe que esta pasando? Escribe bien y correctamente
en el archivo, pero a la hora de leer, lee mal, como si no
supiese los bytes que tiene que leer
Da lo mismo que lea solo el integer, sole el string o los dos
al mismo tiempo
------------------------------------------------------------
Module Module1

    Sub Main()

        ' Count 30 for the string, plus 4 for the integer.
        FileOpen(1, "Estilos.DAT", OpenMode.Random, OpenAccess.Write, OpenShare.LockWrite, 34)
        ' Close before reopening in another mode.

        Dim Estilo1 As New Estilo
        Estilo1.CodigoEstilo = 64
        Estilo1.NombreEstilo = ""
        Dim j As Long = 0
        Do
            j += 1
            Estilo1.CodigoEstilo += 1
            Console.Write(Estilo1.CodigoEstilo & " " & "Introduzca Nombre del Estilo: ")
            Estilo1.NombreEstilo = ReadLine()
            If Estilo1.NombreEstilo <> "" Then
                If Estilo1.NombreEstilo.Length < 30 Then
                    For i As Integer = 1 To 30 - Estilo1.NombreEstilo.Length
                        Estilo1.NombreEstilo += " "
                    Next
                    Console.WriteLine("*" & Estilo1.NombreEstilo & "*")
                End If
                FilePut(1, Estilo1, j)
                Console.WriteLine("Se copio en el archivo el Estilo")
            Else
                Console.WriteLine("No se copio nada en el archico")
            End If
        Loop While (Estilo1.NombreEstilo <> "")
        FileClose(1)

        FileOpen(1, "Estilos.DAT", OpenMode.Random, OpenAccess.Read, OpenShare.LockWrite, 34)
        Console.ReadLine()
        For i As Long = 1 To 15
            FileGet(1, Estilo1.CodigoEstilo, i)
            'FileGet(1, Estilo1.NombreEstilo, i)
            Console.WriteLine(i & " " & " " & Estilo1.CodigoEstilo & " " & "*" & Estilo1.NombreEstilo & "*")
            Console.ReadLine()
        Next
        FileClose(1)

    End Sub

End Module

Public Structure Estilo
    Dim CodigoEstilo As Integer
    <VBFixedString(30)> Dim NombreEstilo As String
End Structure