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

Lod

Apagar ou eliminar o conteudo de um ficheiro.

8 mensagens neste tópico

Continuo a fazer o programa de gestão de equipas e agora estou na opção em que se eliminam equipas que por exemplo desceram de divisão.

A minha ideia era criar um ficheiro auxiliar para passar todas as equipas menos a que o user deseja eliminar para esse ficheiro, depois eliminar o ficheiro principal ou apgar a informação e voltar a passar do ficheiro auxiliar para o principal para que ficasse tudo ordenado sem espaços em branco pelo meio do ficheiro.

Mas não sei como fazer isso e o meu professor disse que havia uma função que eliminava o ficheiro, eu ja fiz umas buscas no google e nada.

Podem me ajudar sff

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se abrires um ficheiro com o StreamWriter e não indicares q é em modo append, o seu conteúdo é  totalmente substituido pelo novo.

Podes ler o conteudo do ficheiro para uma memory stream, depois retiras o q queres e envias p um novo ficheiro.

O outro ou deixas como backup, ou apagas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

desculpa não percebi nada mesmo.

Não sei o que sao as streams ainda sou muito verdinho no vb

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para leres e escreveres em ficheiros tens q usar streams.

Pesquisa no google por FileStreams.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nesse caso mete um exemplo do código q estás a fazer.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
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