Ir para conteúdo
Fórum Script Brasil

Diogoo

Membros
  • Total de itens

    5
  • Registro em

  • Última visita

Sobre Diogoo

Diogoo's Achievements

0

Reputação

  1. FUNCIONOU!!! VLW cara! eu me matando para tentar sobrescrever e funciona com "r+b".. :D Tenho um trabalho para amanhã com isso e iria fazer uma função para carregar em outro arquivo modificando os bits, como tinham falado anteriormente... Muito Obrigado Beraldo Atc, Diogo
  2. Quanto eu testei utilizando o "ab" na abertura do arquivo ele me retornou a seguinte informação: linha1 linha2 linha3 linha4 ////////////////////////// trocar a linha 2 pela mesma informação da linha 4 usando "ab" linha1 linha4 linha2 linha3 linha4 ///////////////////////// mas na verdade o que eu queria era linha1 linha4 linha3 linha4 /////////////////////// se eu uso o "w" ele faz ------ linha4
  3. Em sistemas Unix, há a função truncate(). Ela trunca o arquivo, retirando um número de bytes do final dele. Apesar de não se explicitar a reescrita do arquivo, essa função faz isso internamente. Eu tive a mesma dúvida: deve haver uma forma de não reescrever o arquivo. Pesquisei por uma semana e não achei nada. Se você achar, poste aqui pois quero usar também. O que você pode fazer é mover os bytes do fim do arquivo para a parte do arquivo que deseja apagar. Depois apague o fim do arquivo. Por exemplo: arq.bin linha1 linha2 linha3 linha4 Quero apagar a linha 2. Logo: [code linha 1 linha 4 linha 3 AQUI ESTAVA A LINHA 4, MAS FOI REMOVIDA Mas o problema está exatamente nesse "mover os bytes do fim para o meio", porque quando eu faço isso ele está rescrevendo o arquivo apenas com essa parte que eu removir, mesmo que eu faça um fseek para a posição... Essa solução de remover uma parte do arquivo eu só tive por causa desse outro problema. Na verdade o programa já vai alocar o arquivo com o tamanho correto, só tendo que alterar os dados invalidos posteriormente com dados reais... como feito no torrent... Se você souber como substituir essa "linha2" pela "linha4" já resolveria meu problema. Exemplo: linha1 linha2 linha3 linha4 \/ \/ \/ linha1 linha4 linha3 linha4 Atc, Diogo
  4. [Ark] Obrigado pela idéia ;), mas acho que se eu tiver um arquivo muito grande e for fazer uma cópia alterando apenas 1024 bytes no caso vai ficar muito pesado. A idéia é criar um cliente/servidor p2p para a transferência de um arquivo em partes. [\Ark] [beraldo] Se essa for realmente a única solução, acho que isso será um "gargalo" muito grande, pois eu utilizarei esse escrita parcial de um arquivo constantemente [\Beraldo] Eu andei pesquisando e vou tentar apagar a parte do arquivo que quero modificar e após isso eu irei escrever no modo "a"... Vocês já tentaram isso? Funciona? atc, Diogo
  5. Bom dia, eu estou tetando a horas sobrescrever uma parte de um arquivo utilizando a linguagem C. Quando eu utilizo o fopen com o parâmetro "a" ou "ab", ele adiciona uma parte nova. Quando eu uso "w" ou "wb" ele sobrescreve o texto todo... segue aqui uma das minhas tentativas: char nome_arquivo[200]; int num; char letras[3]; int tamanho; int bloco = 1; FILE *fp; strcpy(nome_arquivo,"C://teste.txt"); strcpy(letras,"011"); fp = fopen(nome_arquivo,"w"); if (fp == NULL){ printf("Falha ao abrir o arquivo "); }else{ printf("Funcionou \n"); } tamanho = strlen(letras); fseek(fp,3*(bloco-1),SEEK_SET); num = fwrite(letras,sizeof(char),tamanho,fp); printf("-:> %d",num); fclose(fp); PS: Estou precisando muito dessa resposta... Atc, Diogo
×
×
  • Criar Novo...