Confronto stringhe File1 e File2, scrittura in File3

di il
22 risposte

22 Risposte - Pagina 2

  • Re: Confronto stringhe File1 e File2, scrittura in File3

    Anute ha scritto:


    Non essendo esperta, e ho appena iniziato col c gradirei capire anche le piccolezze..
    Cosa fa secondo te la fgetc? Perché l'hai usata?

    Devi dare una risposta a questo se vuoi capire.
  • Re: Confronto stringhe File1 e File2, scrittura in File3

    Allora sono file.txt, un esempio di una riga sia presente in file1 che in file2:

    12641622A5

    tale e quale dovrà essere inserita in file3, se è duplicata nei primi due file
  • Re: Confronto stringhe File1 e File2, scrittura in File3

    Ho utilizzato fgetc, perchè utilizzando il ciclo e acquisendo carattere per carattere del file, scorro l'intero file fino a trovare il carattere di FINE file ovvero EOF
  • Re: Confronto stringhe File1 e File2, scrittura in File3

    Per esempio i tag CODE, non so nemmeno cosa siano... Scusatemi la mia ignoranza..

    Aggiungo che ora ho provato a tramutare cosi:

    void confronto(FILE *fp,FILE *fp2,FILE *fp3){
    char stringaFP[20], stringaFP2[20];
    char *c, *c2;
    int uguaglianza;
    while(1) {
    c=fgets(stringaFP, 20, fp);
    c2=fgets(stringaFP2, 20, fp2);
    if( c==NULL && c2==NULL){
    break;
    uguaglianza = strcmp(stringaFP,stringaFP2);
    if(uguaglianza == 0 ){
    fputs(stringaFP,fp3);
    }
    }
    }
    }
    //comunque non funziona
  • Re: Confronto stringhe File1 e File2, scrittura in File3

    Il codice lo devi inserire nel forum mettendo prima [ code ] e alla fine [ /code ] senza spazi tra parentesi, ma devi inserire TUTTO il codice, come ti ho già detto, COMPRESO IL MAIN. Mi dispiace specificarlo, ma sarà l'ultima volta che te lo dico.

    P.S. La fgetc legge un carattere dal file e quindi alla stringa che leggerai dopo con la fscanf mancherà il primo carattere. Devi usare SOLO la fscanf o la fgets.
  • Re: Confronto stringhe File1 e File2, scrittura in File3

    
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
    void confronto(FILE *,FILE *,FILE *);
    
    int main(){
        FILE *fp;//2015
        FILE *fp2;//2016
        FILE *fpConfronto;//2015-2016
    
    
        fp =fopen("2015.txt","r");
        if(fp==NULL){//eventuali problemi
    		printf("problemi in apertura  FILE->2015\n");
    		exit(1);
        }
        fp2 =fopen("2016.txt","r");
        if(fp==NULL){//eventuali problemi
    		printf("problemi in apertura  FILE->2016\n");
    		exit(1);
        }
        fpConfronto =fopen("2015-2016.txt","w");
        if(fp==NULL){//eventuali problemi
    		printf("problemi in apertura  FILE->2015-2016\n");
    		exit(1);
        }
    
        confronto( fp,fp2,fpConfronto);
    
        fclose(fp);
        fclose(fp2);
        fclose(fpConfronto);
    
        return 0;
    }
    
    void confronto(FILE *fp,FILE *fp2,FILE *fp3){
        char stringaFP[20], stringaFP2[20];
        char *c, *c2;
        int uguaglianza;
        while(c=fgets(stringaFP, 20, fp)==NULL){
            //c=fgets(stringaFP, 20, fp);
            while(fgets(stringaFP2, 20, fp2)==NULL){
                //c2=fgets(stringaFP2, 20, fp2);
                if( c==NULL && c2==NULL){
                    uguaglianza = strcmp(c,c2);
                    if(uguaglianza == 0 ){
                        printf("uguaglianza trovata1\n");
                        fputs(c,fp3);
                    }
                }
            }
        }
    }
    
    Provate a correggerlo cortesemente, per favore, ho provato a correggere i fgets... Oregon.. come faresti tu un ciclo che lavora su entrambi i file e ne salva la stringa file1 per confrontarla con tutto il file2? e di seguito incrementare riga file1?
  • Re: Confronto stringhe File1 e File2, scrittura in File3

    
    void confronto(FILE *fp,FILE *fp2,FILE *fp3){
        char stringaFP[100], stringaFP2[100];
        
    	while(fscanf(fp, "%s", stringaFP)==1)
    	{
    		rewind(fp2);
    		while(fscanf(fp2, "%s", stringaFP2)==1)
    			if(strcmp(stringaFP, stringaFP2)==0)
    				fprintf(fp3, "%s\n", stringaFP);
    	}
    }
    
  • Re: Confronto stringhe File1 e File2, scrittura in File3

    Cavolo, bravo, grazie... Siccome il prof. ci ha dato due nozioni.. Avevo inziato a informarmi un po' meglio.. Proprio questa mattina avevo intrapreso il fatto di dover mandare il file di nuovo all'inizio col rewind();
    Comunque sia, grazie mille!!!!!!!!
Devi accedere o registrarti per scrivere nel forum
22 risposte