Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    [c++] Determinare in un confronto tra due files le righe che soddisfano l'eguaglianza

    Avrei questa necessità...

    Dati due file:

    file1.txt

    1,2,3
    5,7,9
    10,14,18
    11,12,13
    8,12,34
    ecc...

    file2.txt

    1,2,7
    5,7,9
    10,14,18
    21,12,13
    8,32,34
    ecc...

    Avrei necessità di avere un report di questo tipo secondo l'esempio...:

    soddisfatta eguaglianza di riga... (tutti e tre i numeri uguali 5,7,9) alla riga: 2

    Come potrei fare?

    GRAZIE


  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Leggi, riga per riga, i due file, e confrontale.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    d'accordo però...

    così facendo mi impiega un sacco di tempo ...

    ci impiega 2 min x riga... essendo 84.000 e ci metterebbe 120 giorni...

    un metodino + veloce? Che magari mi dicesse anche le righe verificate... (es... uguaglianza trovata alla riga tot)

    Grazie comunque


  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462

    Re: d'accordo però...

    Originariamente inviato da freetom
    così facendo mi impiega un sacco di tempo ...

    ci impiega 2 min x riga... essendo 84.000 e ci metterebbe 120 giorni...

    un metodino + veloce? Che magari mi dicesse anche le righe verificate... (es... uguaglianza trovata alla riga tot)

    Grazie comunque

    2 min per riga? E' uno sproposito ... Perche' tutto questo tempo?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Re: Re: d'accordo però...

    Originariamente inviato da oregon
    2 min per riga? E' uno sproposito ... Perche' tutto questo tempo?
    Credo ci impieghi cosi' tanto perchè... ogni riga deve essere confrontata con altrettante 84000 righe di un altro file txt

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ah ... una riga con tutte le righe ... ok ...

    Ma il secondo file lo dovresti caricare interamente in memoria ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Intendi metterlo in un vector o array?

    Se si ho già provato... ma il problema del tempo persiste...

    :master:

  8. #8
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    2,803
    mi sembrava molto strano che ci mettesse 2 minuti a fare 83000 confronti, ho provato a scrivere a volo il tuo programma e viene eseguito istantaneamente(un solo contronto), d'altronde 83000 righe sono poco più di 1MB, io ho provato con 3 cifre per riga come hai postato tu, ma anche se fossero 1000 per riga una differenza del genere non credo sia sia solo questione di processore, posta il codice

  9. #9
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Mi puoi postare anche il tuo?

    "...ho provato a scrivere a volo il tuo programma..."

    TNX


  10. #10
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    2,803
    codice:
    #include<stdio.h>
    #include<string.h>
    int main(){
        FILE*filea=fopen("a.txt","r");
        FILE*fileb=fopen("b.txt","r");
        int x,y;
        char a[32],b[32];
        for(x=0;fgets(a,32,filea);x++){
                             rewind(fileb);
                              for(y=0;fgets(b,32,fileb);y++){
                                                       if(strcmp(a,b)==0) printf("le righe %d e %d sono uguali -> %s ",x,y,a);
                                                  }
                             
        }
        getchar();
        }


    ps: se invece ho frainteso e il programma deve solo individuare le righe uguali sarà veloce il doppio, basta eliminare il ciclo nidificato

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.