Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Alterar um arquivo


Josefran

Pergunta

5 respostass a esta questão

Posts Recomendados

  • 0
alguém???

opa tinha esquecido de você..

você vai ter q reescrever o arquivo intero, só isso.

abre o arquivo e já copiando as linhas pra um novo arquivo. e a linha q você quer tirar, simplesmente não copia.

pelo menos não acho q exista forma de alterar direto no arquivo sem ter q reescreve-lo.

Link para o comentário
Compartilhar em outros sites

  • 0

Pensei em fazer isso mas eu tive um problema... tipo tenho um arquivo chamado texto.txt e quero alterar uma determinada linha dele e salvar o arquivo com o mesmo nome se eu colocar um novo arquivo no buffer aberto como "w" não vai dar pane ou algo assim. porque quando abro o arquivo do tipo fopen("texto.txt", "w") ele deleta o arquivo caso já existia e ai?

Melhorando a duvida

Suponha que eu tenha um arquivo tex.txt salvo ai eu declaro dois ponteiros tipo FILE digamos p e fp. Dai fazemos

p = fopen("tex.txt","r") e fp = fopen("tex.txt","w"). ok. não vai dar pane ai não? pois eu estou deletando um arquivo que esta no buffer e quando eu precisar fechar ele? porque quando abro fp ele deleta o arquivo tex.txt porque já existe. Deu para entender a duvida ou me embananei?

Link para o comentário
Compartilhar em outros sites

  • 0

é mas imagino q os softwares costumem fazer assim mesmo. por exemplo, o word, quando você altera uma linha, ele não inclui essa linha somente dentro do arquivo no hd, ele simplesmente reescreve todo o arquivo.

quem imagino q escreve direto no hd é programa de banco de dados tipo access, sql, mas pra fazer isso, tb imagino q seja alguma coisa de nivel bem baxo, muito complicado de se fazer.

pelo menos não possivel usando fopen e etc.

mas tipo, o q os softwares costumam fazer é abrir o arquivo e carregar tudo na memoria. e então ele perde o vinculo com o arquivo no hd.

experimenta abrir uma imagem no paint. com a imagem aberta, vai la no explorer e delete ela. você vai ver q consegue deletar sem problemas. mas ela continua aberta no paint, porque esta carregada na memoria e ai você consegue salvar onde quiser.

então você teria q fazer uma coisa assim. vejo duas opcoes pra você:

1 - abra o arquivo e carregue tudo na memoria dentro de uma string e então fecha o arquivo. tira a linha q você quer, abre de novo o mesmo arquivo, dessa vez para escrita e sobreescreve toda a informacao tirando a linha q você quer.

essa opcao acho q seria a mais "correta" mas tb a mais complicada, pois você teria q por o arquivo todo numa string, ou num array de string, e trabalahr com string é triste.

2 - abra o arquivo q você quer alterar e abra um segundo arquivo qualquer em qualquer endereco. então salve o arquivo modificado nesse segundo arquivo, apague o original, e renomeie o segundo com o mesmo nome do primero e ponha no mesmo diretorio. pronto, você substituiu o arquivo pelo modificado e ta la sem problemas.

essa opcao seria mais facil e não vejo muito problema com ela, apesar de acho q com a otra ficaria mais bunito, mas você só precisaria saber as funcoes pra renomear e apagar arquivo, q eu não sei quais são, mas você deve encontrar facil no google ou acho q ate pode suar os comandos de dos com a funcao system(), nunca tentei mas pode funcionar.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...