Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24

Discussione: [C]Modifica di un file

  1. #1

    [C]Modifica di un file

    Salve a tutti e buona Domenica ,ho un altro quesito da porvi:
    Ho un file strutturato nel seguente modo:

    Descrizione:un qualcosa di max 100 caratteri\n
    Costo:un intero o un float\n
    Numero:un intero\n
    Tempo:un tipo di file time\n

    Ho aperto il file con una semplice fopen in "r+"
    Come faccio a modificare ad esempio il campo costo,il campo numero e il campo tempo con un numero a mia scelta???

    Grazie a tutti!!!

  2. #2
    L'unica modifica che puoi fare è sostituire dei caratteri (non aggiungerne arbitrariamente in mezzo); se vuoi fare delle modifiche che necessitano di aggiungere caratteri in mezzo al file devi riscrivere in un nuovo file tutto il file modificato e rimpiazzare il file vecchio con quello nuovo.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Il mio scopo è questo:
    Se il campo costo è uguale a 150,00 lo voglio modificare in 0;
    cioè
    costo:150,00 ----> costo:0
    Non so come fare!!!
    Grazie della risposta tempestiva.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Come ti è stato detto, questo lo puoi fare perchè potresti sostituire a

    150,00

    il valore

    000,00

    Ma se devi sostituire al valore

    150,00

    il valore

    2300,00

    allora, dato che devi aggiungere dei caratteri, devi riscrivere il file.

    Quindi, se quest'ultimo caso si puo' verificare, non ti rimane che questa soluzione: leggi il file, modifichi i valori, scrivi il nuovo file, cancelli il primo, rinomini il secondo.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Ok,fin qui c sono!Il mio problema è come modificare i valoriosizionarsi sul valore da modificare e scrivere il nuovo valore in un file tipo quello postato prima!Grazie

  6. #6
    allora, dato che devi aggiungere dei caratteri, devi riscrivere il file.
    ... motivo per cui una volta erano diffusissimi i file binari con record a lunghezza fissa (a molti il codice
    codice:
    OPEN "NOMEFILE.DAT" FOR RANDOM AS #1
    non suonerà nuovo... )
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non ti devi posizionare da nessuna parte. Devi leggere il file e modificare *in memoria* il valore letto prima di riscriverlo.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da MItaly
    OPEN "NOMEFILE.DAT" FOR RANDOM AS #1[/code]
    non suonerà nuovo... )
    Infatti ... compresa la

    FIELD #1, ....

    per chi la ricorda ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Scusa la banalità..ma come si fa????

    apro il file in questo modo:
    codice:
    fp=fopen("nomefile","r+");
    poi???

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Dato che devi solamente leggere, apri con r
    Apri anche il secondo file in lettura

    Man mano che leggi i dati dal primo, con un ciclo, se ti serve li modifichi, e li riscrivi nel secondo file.

    Saprai scrivere un loop per leggere tutti i dati dal primo file ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.