Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [C] - cancellare riga da file dato un nome

    ciao a tutti amici!! come faccio a cancellare una riga di un file,dato un cognome da tastiera,che ad esempio contiene appunto nome-cognome-indirizzo-telefono (gestione ribrica).? io ho provato cosi


    codice:
    case 'togliere':
    {
     printf("persona da togliere:");
     scanf("%s",cognomex); 
    if(strcmp(info.cognome,cognomex)==0)
    }
    fprintf(fp2,"%s-%s-%s-%d-%s",info.nome,info.cognome,info.indirizzo,&info.telefono,info.nota);
    GRAZIE A TUTTI!!!

  2. #2
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    La fprintf è una funzione di scrittura su stream, non penso sia possibile cancellare parti del file.
    Ti tocca memorizzarti da qualche parte quale stringhe copiare, aprire il file in scrittura e riscriverlo.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    156
    se si apre il file come "r+" però si può fare credo.
    con seek() si arriva alla riga che si vuole cancellare e poi si scrive da li una stringa formata solo da spazi fino a fine riga, dovrebbe sovrascriverla.
    codice:
    /*presupponendo che sei già arrivato ad inizio riga*/
    while (getc(tuofile)!="\n") {putc(' ',tuofile)}
    ma aspetto conferma da qualcuno, anch'io sono alle prime armi

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Sovrascrivere con spazi è una cosa, cancellare (eliminare) dal file è un'altra ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    156
    giustamente...

    se però si vuole che il puntatore non appena arrivi a questa riga vuota salti a quella successiva si può mettere all'inizio un "\n" o non cambierebbe niente?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Non cambierebbe il fatto che lui vuole eliminare i dati non cambiarli ...!

    Per eliminare fisicamente i dati da un file sequenziale di testo, si deve scrivere un altro file ricopiando i dati che si vogliono conservare, eliminare l'originale e rinominare il nuovo file.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    si ok, ma io intendevo che se cerco una parola in una riga di un file, si eliminasse l intera riga di quel file riscrivendo le nuove righe(tranne quella in un altro file)!!

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da jonnyforever
    si ok, ma io intendevo che se cerco una parola in una riga di un file, si eliminasse l intera riga di quel file riscrivendo le nuove righe(tranne quella in un altro file)!!
    Ecco e quindi rileggi l'ultimo mio post ...

    P.S. Per quanto riguarda il codice che hai mostrato

    case 'togliere':

    ti consiglio di studiare nuovamente sul tuo libro l'istruzione switch() ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Al limite puoi metterci un contrassegno, tipo un "#" per indicare che quella riga non va letta.
    Oppure ti tocca memorizzarti da qualche parte quale stringhe copiare, aprire il file in scrittura e riscriverli.

  10. #10
    il caso switch me lo sto studiando per bene perchè facendo una selezione dichiarandola con una printf che mi permette di sceglere "togliere" seleziona la parola(cognome) però in termini di codice poi come riscrivo lo stesso file senza quella riga? tutto qui è il problema!! Grazie :-)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.