• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Lod

Problema com ficheiros ERRO : Bad Record Lengh

2 mensagens neste tópico

Boas, estou a fazer um programinha e está-me sempre a dar um erro que eu não estou a perceber o que tem de mal mas de certeza deve ser bem simples.

Código:

Module Module1
    Structure equipas
        Dim nr As String
        Dim nome As String
    End Structure
    Structure codigos
        Dim cod As String
    End Structure
    Dim equipa As equipas
    Dim cod(100) As codigos
    Sub menu(ByRef op As Char)
        Console.WriteLine("    MENU")
        Console.WriteLine("   1-Introduzir Equipas")
        Console.WriteLine("   2-Introduzir Jogadores")
        Console.WriteLine("   3-Alterar")
        Console.WriteLine("   4-Listar")
        Console.WriteLine("   5-Eliminar")
        Console.WriteLine()
        Console.WriteLine("Escolha uma opção")
        op = Console.ReadLine
    End Sub
    Sub regcodigos()
        ' guarda os nr das equipas num registo para depois comparar se esse número já existe
        Dim i As Integer
        If My.Computer.FileSystem.FileExists("C:\Users\Rafael Santos\Desktop\Rafael\programinhas\BD_EQUIpas_jogadores\BD_EQUIpas_jogadores\bin\Debug\equipas.txt") Then
            FileOpen(1, "C:\Users\Rafael Santos\Desktop\Rafael\programinhas\BD_EQUIpas_jogadores\BD_EQUIpas_jogadores\bin\Debug\equipas.txt", OpenMode.Random, OpenAccess.Read, , 999)
            For i = 2 To 100 Step 2
                FileGet(1, equipa.nr, i)
                cod(i).cod = equipa.nr
            Next
            FileClose(1)
        End If
    End Sub
    Sub posicaocerta(ByRef pos As Integer, ByVal pos2 As Integer)
        ' serve para por a posiçao certa de maneira a que não sobreponha as informações de outras equipas
        If My.Computer.FileSystem.FileExists("C:\Users\Rafael Santos\Desktop\Rafael\programinhas\BD_EQUIpas_jogadores\BD_EQUIpas_jogadores\bin\Debug\posicoes.txt") Then
            FileOpen(2, "C:\Users\Rafael Santos\Desktop\Rafael\programinhas\BD_EQUIpas_jogadores\BD_EQUIpas_jogadores\bin\Debug\posicoes.txt", OpenMode.Random, OpenAccess.Read, , 3)
            FileGet(2, pos2, 1)
            pos = pos2
            FileClose(2)
        End If
    End Sub
    Sub inserirequipas()
        regcodigos()
        Dim pos, i, pos2 As Integer
        Dim nr As String
        Dim test As Boolean = False
        posicaocerta(pos, pos2)
        FileOpen(1, "C:\Users\Rafael Santos\Desktop\Rafael\programinhas\BD_EQUIpas_jogadores\BD_EQUIpas_jogadores\bin\Debug\equipas.txt", OpenMode.Random, OpenAccess.Write, , 999)
        Console.WriteLine("Insira o nome da Equipa")
        equipa.nome = Console.ReadLine
        pos = pos + 1
        FilePut(1, equipa.nome, pos)
        Console.WriteLine("Insira o código respectivo à equipa")
        Do While test = False
            nr = Console.ReadLine
            For i = 2 To 100 Step 2
                If nr = cod(i).cod Then
                    Console.WriteLine("Esse número já foi introduzido")
                    test = False
                    Exit For
                Else
                    test = True
                End If
            Next
        Loop
        equipa.nr = nr
        pos = pos + 1
        FilePut(1, equipa.nr, pos)
        FileClose(1)
        FileOpen(2, "C:\Users\Rafael Santos\Desktop\Rafael\programinhas\BD_EQUIpas_jogadores\BD_EQUIpas_jogadores\bin\Debug\posicoes.txt", OpenMode.Random, OpenAccess.Write, , 1)
        pos2 = pos
        pos = 1
        FilePut(2, pos2, 1)<----- AQUI É ONDE APARECE SEMPRE O ERRO
        FileClose(2)
    End Sub
    Sub Main()
        Dim op As Char
        menu(op)
        Select Case op
            Case "1"
                inserirequipas()
        End Select
    End Sub

End Module

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora