Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    281

    C/C++: scrivere all'inizio di un file binario senza sovrascrivere il contenuto

    Qualcuno sa come si fa? con le funzioni normali se m sposto all'inizio del file e inserisco qualsiasi carattere m viene sostituito ai dati ke stavano al suo posto, ma a me serve aggiungerlo: vorrei evitare di copiare tutto un file (visto ke poi si tratta di file d almeno 2MB) x accodarlo al testo ke voglio inserire.

  2. #2
    in C

    FILE *fout;
    fout=fopen("text.txt", "w+");
    fputs(stringa, fout);

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    281
    Originariamente inviato da Johnny_Depp
    in C

    FILE *fout;
    fout=fopen("text.txt", "w+");
    fputs(stringa, fout);
    No nn va bene così (xkè viene eliminato il contenuto del file).
    Anche aprendolo in append e scrivendo dentro al file si va a sovrascrivere i dati ke c'erano precedentemente nel file

    A me serve scrivere all'inizio del file senza xò sovrascrivere i dati(devo aggiungere all'inizio del file, tutto qua)

    es:
    file prima della scrittura:

    testo
    di
    prova


    file dopo la scrittura: (inserisco la parola "ciao")

    ciao
    testo
    di
    prova

  4. #4
    ...L'unico modo che AL MOMENTO mi viene in mente

    è quello di inserire il contenuto del FILE.txt
    in un array

    poi sovrascrivi il file di testo
    inserendo prima la stringa (o nuovo record) appena inserita in input
    e poi l'intero contenuto dell'array,

    se esiste una funzione specifica del C fateci sapere :gren:

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    281
    E' la stessa cosa ke ho pensato io, ke volendo potrei ottimizzare salvando in memoria centrale un tot di dati ke sono quanti quelli ke devo scrivere, prima di sovrascriverli, visto ke lavoro con degli mp3 ke sono file di diversi MB.

    ad es:
    ho un file di 1000byte e devo scrivere 100byte all inizio del file

    al posto di salvare subito 1000byte ne salvo solo 100 (i primi 100) x poi sovrascriverli con quelli ke devo inserire io, poi copio i byte da 101 a 200 in un altra zona d memoria e sovrascrivo i 100byte salvati precendentemente, così via fin quando nn arrivo alla fine.

  6. #6
    ofstream NomeTuoFile("nomefile.txt",ios::app); con questo continui a scriverci da dove lo hai lasciato

    ofstream NomeTuoFile("nomefile.txt",ios::beg); con questo cominci a scriverci dall'inizio

    Spero che questo ti possa essere d'aiuto. :metallica

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    281
    ma questo lo so già!
    il problema è ke io devo scrivere all'INIZIO del file SENZA sovrascrivere i dati in esso contenuti

    ofstream NomeTuoFile("nomefile.txt",ios::beg); con questo inizio si a scrivere all'inizio del file, ma perdo i dati ke c'erano dove vado a scrivere

  8. #8
    Iocci
    Guest
    non penso proprio che si possa fare una cosa come dici tu senza copiare il file in un vettore, aggiungere il testo all'inizio e poi rimetterlo su file.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.