Newsgroup: it.comp.lang.c
Titolo: Comparazione di Stringhe!!! HELP!!!!!

Buon giorno a tutti.
Ho un problema che spero possiate risolvere, mi fareste un grande
piacere: attualmente sto lavorando su un piccolo programmino per pulire 
un file da alcuni caratteri strani e per generare alla fine un file da 
dare in pasto a un altro programma. Non capisco perche' non funziona.
Ho un file total.dat costituito da varie righe(per esempio)
Y 01 01 00 00000033 181208 0926 U 
Y 01 01 00 00000039 181208 0908 U                
R 01 01 00 00000034 181208 0847 E
A 01 01 00 00000033 181208 0926 U 
B 01 01 00 00000039 181208 0908 U                
F 01 01 00 00000034 181208 0847 E
G 01 01 00 00000033 181208 0926 U 
H 01 01 00 00000039 181208 0908 U                
U 01 01 00 00000034 181208 0847 E
I 01 01 00 00000033 181208 0926 U 
P 01 01 00 00000039 181208 0908 U                
R 01 01 00 00000034 181208 0847 E
e in un altro file (search.dat) ho una delle righe del file precedente 
(per es)
B 01 01 00 00000039 181208 0908 U                
Quello che devo fare e' cercare la stringa del file search.dat nel file 
total.dat e poi scrivere in un terzo file "last.dat" tutte le righe 
successive a quella di ricerca.
HO scritto questa semplice procedura
---
void step2(void) {
char search[100];
FILE *fsearch;
FILE *fd2;
FILE *fo2;
FILE *fd3;
FILE *ft;
char buf_search[200];
char char_inaz[200];
char char_temp[204];
char comp1[200];
char comps[4];
char *research;
int result;
int counter;
int i;
int comp_res;
counter=0;
//creazione file temporaneo
ft=fopen(File_Temp, "w");
if( ft==NULL ) 
      {
    perror("Errore in apertura del file temporaneo");
    perror("Chiamare il gestore del sistema");
    exit(1);
      }
//leggo la stringa da cercare 
//---------------------------
fsearch=fopen(File_Search, "r");
 if( fsearch==NULL ) 
      {
    perror("Errore in apertura del file della ultima data INAZ");
    perror("Chiamare il gestore del sistema");
    exit(1);
      }
   research=fgets(buf_search, 200, fsearch);
   printf("stringa di ricerca %s \n",buf_search);
   close(fsearch);
//leggo la stringa da cercare 
//---------------------------
//ora analizziamo il file
  fd2=fopen(File_Output1, "r");
  fo2=fopen(File_INAZ, "w");
research=fgets(char_inaz, 200,fd2);
  while (strncmp(buf_search,char_inaz,35)==0)
   {
result = strncmp(char_inaz,buf_search,35);
 printf ("riga saltata %s  %s %i \n",char_inaz, buf_search, result);
   research=fgets(char_inaz, 200,fd2);
counter+=1;
   }
  printf("fino ciclo while \n");
 
printf("Ora salto i %i righe \n", counter);
printf("--------------------- \n"); 
for(i = 0; i < counter; i=i+1) 
   { 
research=fgets(char_inaz, 200,fd2);
   }
printf("Ora comincio a copiare \n\n");
printf("---------------------\n");  
  // research= fgets(char_inaz, 200,fd2);
 printf ("riga copiata %s\n",char_inaz);  
fputs(char_inaz, fo2);
   close(fd2);
   close(fo2);
close (ft);
}
----
Il problema sembra essere
research=fgets(char_inaz, 200,fd2);
  while (strncmp(buf_search,char_inaz,35)==0)
   {
result = strncmp(char_inaz,buf_search,35);
 printf ("riga saltata %s  %s %i \n",char_inaz, buf_search, result);
   research=fgets(char_inaz, 200,fd2);
counter+=1;
   }
  printf("fino ciclo while \n");
che non entra nel ciclo.
AIUTO!!! Grazie in anticipo. Sto perdendo le notti per trovare l'errore. 
Ma non lo trovo..
Ve ne saro' grato.
                         ALEX

 fputs(char_inaz, fo2);
Qui dovevi mettere un ciclo, e togliere il commento...
E.