[#C] Problema funzione modifica stringa HELP!!

di il
4 risposte

[#C] Problema funzione modifica stringa HELP!!

Cari programmatori sono almeno 15 giorni che sbatto la testa su una funzione del mio programma. E ancora non ne vengo a capo.
La funzione in oggetto dovrebbe ricercare una stringa in un file.txt (e questo fortunatamente lo fa) e successivamente modificarne parte del contenuto in base ad un input dato da me. (su questo chiedo aiuto).

Vi posto la funzione.......

char let[13];
char parola[256];
int a;


file=fopen("file.txt","r+");
printf("Inserisci la stringa da ricercare: ");
scanf("%s", let);

while((fgets(parola,2048,file))!=NULL){
for(a=0;parola[a]!='\0';a++){
if(parola[a]==let[0]){
if(cerca(parola,let,a)==1)
printf("%s", parola);

}
}

}

fclose(file);

int cerca(const char *vettore,const char *ric, int offset){
for(;*ric!='\0';offset++,ric++){

if(*(vettore+offset)!=*ric){
return 0;
}
}
return 1;
}


COME POTETE NOTARE IL CODICE PER LA RICERCA FUNZIONA, NON RIESCO AD INTEGRARE UN CODICE PER LA MODIFICA DELLA STRIGNA CHE RICERCO, CHE VA POI A SOSTITUIRE QUELLA PRESENTE NEL FILE....
SPERO POSSIATE ESSERMI DI AIUTO

4 Risposte

  • Re: [#C] Problema funzione modifica stringa HELP!!


    Ciao, che intendi con: ...modificarne parte del contenuto in base ad un input dato da me.
    Fai qualche esempio.
    Buona serata
  • Re: [#C] Problema funzione modifica stringa HELP!!

    Io ho un file txt con delle stringhe all'interno che inserisco tramite il programma,
    quello che non riesco a fare è ricercare una stringa e modificarne il contenuto. quindi avere la nuova stringa su file al posto dell'altra.

    es:


    stringhe
    1 2 3 4

    9 8 5 7

    modifica stringa

    nuova stringa
    1 3 6 4

    9 8 5 7

    ho ricercato la stringa " 1 2 3 4 e ne ho madificato il secondo e il terzo numero " 1 3 6 4 e salvo su file. non so se è chiaro. spero di si
  • Re: [#C] Problema funzione modifica stringa HELP!!


    Ciao,
    se ho ben compreso allora il problema è il seguente:
    Dato un file di testo contenente stringhe seprate da spazi creato da te, vorresti:
    - ricercare una stringa in particolare,
    - modificarla,
    - riscriverla nello stesso file nella posizione della vecchia stringa.
    Giusto?
    Se è così, penso di poterti aiutare.
    Il fatto è un file di testo è vero che può essere letto e/o scritto, ma l'operazione di scrittura deve essere fatta di getto. Una volta che il file è stato scritto se lo vuoi modificre devi:
    - ricopiare il file sorgente in uno d'appoggio sino alla stringa che vuoi sostituire,
    - scrivere nel file d'appoggio la nuova stringa,
    - continua a ricopiare il resto del file sorgente nel file d'appoggio,
    - cancella il file sorgente,
    - rinomina il file d'appoggio col nome del file sorgente.
    E' un pò macchinoso ma è una possibile soluzione.
    In verità, se il file sorgente non è molto grande (entro i 20KB) forse ti converrebbe:
    - leggere l'intero file e metterlo in memoria,
    - fai le tue operazioni in memoria (ricerca e sostituzione),
    - cancella in file sorgente e riscrivine uno nuovo con lo stesso nome ma con i nuovi dati.
    Con "metterlo in memoria" intendo dire mettilo in una struttura dati tipo "lista" oppure se conosci ambienti visuali usa il tipo: Memo.
    Buona giornata
  • Re: [#C] Problema funzione modifica stringa HELP!!

    Ok Ti ringrazio x le informazioni.....
Devi accedere o registrarti per scrivere nel forum
4 risposte