Forum Flash, Actionscript, PHP e MySQL
[C] comparazione file di testo

 
Nuovo Topic   Rispondi    Forum Flash, Actionscript, PHP e MySQL » Programmazione Generale
Precedente  Successivo 
Autore Messaggio
ali7.p
nuovo utente
nuovo utente



Registrato: 06/07/06 16:18
Messaggi: 4

MessaggioOggetto: [C] comparazione file di testo
Inviato: 06.07.06 | 16:19
Rispondi citando

Help me please!!

Devo scrivere un prgramma C che accetta come parametri di ingresso due file di testo e restituisce in uscita la copia delle righe del secondo file che differiscono dalle corrispondenti righe del primo indicando per ciascuna di esse il numero di riga

... almeno datemi qualche suggerimento...
Torna in cima
Profilo Messaggio privato  
Sponsor
giammy
moderatore
moderatore



Registrato: 29/04/05 17:22
Messaggi: 75

MessaggioOggetto:
Inviato: 10.07.06 | 12:28
Rispondi citando

ciao,

mi pare che quello che vuoi tu sia il comando grep.
prova a cercare i sorgenti e prendere ispirazione da quelli

ciao
giammy
Torna in cima
Profilo Messaggio privato   HomePage
ali7.p
nuovo utente
nuovo utente



Registrato: 06/07/06 16:18
Messaggi: 4

MessaggioOggetto:
Inviato: 11.07.06 | 17:48
Rispondi citando

io ho buttao giù questo codice... ma c'è qualcosa che non va... Confused Confused

 
Codice:
#include <stdio.h>
#include<string.h>


char array1[MAX_DIM];
char array2[MAX_DIM];
char aux1[MAX_DIM];
char aux2[MAX_DIM];

unsigned int contatoreRighe=1;
unsigned int pos1=0;
unsigned int pos2=0;
unsigned int i;


int main (int argc, char *argv[]) {
    
    if (argc != 3) {
        printf("Parametri non validi - La sintassi corretta e'\n\n" 
        "%s file_1 file_2\n", argv[0]);
        exit(1);
    }
    
    FILE *fp;
    fp=fopen(argv[1],"r");
    if(fp==NULL) {
          printf("ERRORE nell'accesso ai dati");
          exit(1);
    }

    FILE *fp1;    
    fp1=fopen(argv[2],"r");
    if(fp1==NULL) {
          printf("ERRORE nell'accesso ai dati");
          exit(0);
    }


    while ((array[pos1])&&(array2[pos2])) {
         for (i=0;((array1[pos1]!=newline)&&(array1[pos1]));pos1++,i++)
              aux1[i]=array1[pos1];
         aux1[i]='\0'; // chiude la stringa copiata carattere per carattere
         for (i=0;((array2[pos2]!=newline)&&(array2[pos2]));pos2++,i++)
              aux2[i]=array2[pos2];
         aux2[i]='0';

         if (strcmp(aux1,aux2)!=0)
              printf("\nRiga numero %u: %s\n", contatoreRighe,aux2);
         
         contatoreRighe++;
         if (array1[pos1])    // incrementa indice array solo se non è alla fine
                 pos1++;
         if (array2[pos2])         
                 pos2++;
    }
}
Torna in cima
Profilo Messaggio privato  
giammy
moderatore
moderatore



Registrato: 29/04/05 17:22
Messaggi: 75

MessaggioOggetto:
Inviato: 12.07.06 | 10:31
Rispondi citando

 
ali7.p ha scritto:
io ho buttao giù questo codice... ma c'è qualcosa che non va... Confused Confused

boh- da una lettura veloce mi son perso dov'e' che leggi i dati dal file:
la priva volta che usi array1, e' inizializzato? dove?

 
Codice:
#include <stdio.h>
#include<string.h>


char array1[MAX_DIM];
char array2[MAX_DIM];
char aux1[MAX_DIM];
char aux2[MAX_DIM];

unsigned int contatoreRighe=1;
unsigned int pos1=0;
unsigned int pos2=0;
unsigned int i;


int main (int argc, char *argv[]) {
    
    if (argc != 3) {
        printf("Parametri non validi - La sintassi corretta e'\n\n" 
        "%s file_1 file_2\n", argv[0]);
        exit(1);
    }
    
    FILE *fp;
    fp=fopen(argv[1],"r");
    if(fp==NULL) {
          printf("ERRORE nell'accesso ai dati");
          exit(1);
    }

    FILE *fp1;    
    fp1=fopen(argv[2],"r");
    if(fp1==NULL) {
          printf("ERRORE nell'accesso ai dati");
          exit(0);
    }


    while ((array[pos1])&&(array2[pos2])) {
         for (i=0;((array1[pos1]!=newline)&&(array1[pos1]));pos1++,i++)
              aux1[i]=array1[pos1];
         aux1[i]='\0'; // chiude la stringa copiata carattere per carattere
         for (i=0;((array2[pos2]!=newline)&&(array2[pos2]));pos2++,i++)
              aux2[i]=array2[pos2];
         aux2[i]='0';

         if (strcmp(aux1,aux2)!=0)
              printf("\nRiga numero %u: %s\n", contatoreRighe,aux2);
         
         contatoreRighe++;
         if (array1[pos1])    // incrementa indice array solo se non è alla fine
                 pos1++;
         if (array2[pos2])         
                 pos2++;
    }
}
Torna in cima
Profilo Messaggio privato   HomePage
ali7.p
nuovo utente
nuovo utente



Registrato: 06/07/06 16:18
Messaggi: 4

MessaggioOggetto:
Inviato: 01.09.06 | 17:59
Rispondi citando

l'array era inizializzato all'inizio, cmq non importa, ho risolto
Torna in cima
Profilo Messaggio privato  
Mostra prima i messaggi di:   
Nuovo Topic   Rispondi    Forum Flash, Actionscript, PHP e MySQL » Programmazione Generale Tutti i fusi orari sono GMT + 2 ore
Pagina 1 di 1

Discussioni Simili
Topic Autore Forum Risposte Ultimo Messaggio
Nessun nuovo messaggio Informazioni da un file zov PHP 11 04.09.04 | 15:54 Leggi gli ultimi messaggi
zov
Nessun nuovo messaggio A.A.A. Cerco file fish Games 7 26.06.03 | 08:40 Leggi gli ultimi messaggi
Coach
Nessun nuovo messaggio modifica file xml alexaloisi Flash Generale 5 15.07.08 | 14:17 Leggi gli ultimi messaggi
Coach
Nessun nuovo messaggio file.php e forum? Ginger PHP 10 19.06.04 | 13:56 Leggi gli ultimi messaggi
Ginger
Nessun nuovo messaggio cancellazione file fish Linux 3 19.11.08 | 15:05 Leggi gli ultimi messaggi
Coach



 
Vai a:  
Non puoi inserire nuovi Topic in questo forum
Non puoi rispondere ai Topic in questo forum
Non puoi modificare i tuoi messaggi in questo forum
Non puoi cancellare i tuoi messaggi in questo forum
Non puoi votare nei sondaggi in questo forum
Non puoi allegare files in questo forum
Puoi downloadare gli allegati in questo forum



Powered by phpBB © 2001, 2002 phpBB Group - phpBB SEO Designed by coachdesign - © 2003-2005