Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - isolare stringhe file di testo
Forum - C/C++ - isolare stringhe file di testo - Pagina 3

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 19:19
Sabato, 26/01/2008
ciao se utilizzi il mio primo codice:
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main()
  5. {
  6.  
  7. char txt[1024]={"0,0"};
  8. char parole[255][255]={"0,0"};
  9. FILE *fp;
  10.  
  11. int i, n, m;
  12.  
  13. fp = fopen("C:\\prova.txt","r");
  14.  
  15. for(i=0; ((txt[i]=getc(fp)) != EOF);i++)
  16.     ;
  17.  
  18. n =0;
  19. m=0;
  20. for (int y=0, n=0, m=0; y!=i;y++,m++)
  21. {
  22.     if (txt[y]==' ')
  23.     {
  24.         n++;
  25.         m=-1;
  26.     }
  27.     else
  28.     {
  29.         parole[n][m]=txt[y];
  30.     }
  31. }


avrai una matrice inizializzata da tutte le paroleche ci sono nel file.
a questo punto per verificare se all'interno di ogni parola(cioè le parole presenti nella matrice) ce ne è un altra puoi usare l'ultimo codice che ti ho postato.
nn so se ti sono stato d'aiuto.
ciao

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 21:18
Sabato, 26/01/2008
No ... il codice e' sempre semplice ... dovra' essere

Codice sorgente - presumibilmente C++

  1. int main()
  2. {
  3.   char parolacercata[200] = "non";
  4.   char linea[1024];
  5.   char *str;
  6.   FILE *fp;
  7.  
  8.   fp = fopen("c:\\file.txt","r");
  9.  
  10.   while(1)
  11.   {
  12.     if(!fgets(linea, 1024, fp)) break ;
  13.  
  14.         if(str=strstr(linea, parolacercata))
  15.     {
  16.                 printf("Parola trovata nella linea: %s\n", linea);
  17.       break;
  18.     }
  19.   }
  20.  
  21.   fclose(fp);
  22. }



Tieni presente che la parola che cerchi potrebbe far parte della frase, ma non essere proprio una parola ... cioe', se hai la linea

essereononessere

e cerchi la parola

reo

questa viene trovata ...

Ultima modifica effettuata da gantonio il 26/01/2008 alle 21:18
PM Quote
Avatar
Dark_Limit (Ex-Member)
Expert


Messaggi: 220
Iscritto: 15/01/2008

Segnala al moderatore
Postato alle 14:53
Domenica, 27/01/2008
Grazie mille !! Funziona alla perfezione mi siete stati molto di aiuto !! ciao.:k:

PM Quote
Avatar
Dark_Limit (Ex-Member)
Expert


Messaggi: 220
Iscritto: 15/01/2008

Segnala al moderatore
Postato alle 15:36
Domenica, 27/01/2008
Scusa 'Gantonio' ma nell'esempio che mi hai dato come faccio a confontare più stringhe nel ciclo if cioè :
Codice sorgente - presumibilmente Plain Text

  1. if(str=strstr(linea, parolacercata))||(str=strstr(linea,parolacercata1))
  2. {
  3. //fai qualcosa
  4. }


così il compilatore mi da errore..
:-?

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 16:52
Domenica, 27/01/2008
Devi scrivere

Codice sorgente - presumibilmente C/C++

  1. if ( strstr(linea, parolacercata) || strstr(linea, parolacercata1) )
  2. {
  3.   // ...
  4. }



ed elimina la variabile str dichiarata all'inizio

PM Quote
Avatar
Dark_Limit (Ex-Member)
Expert


Messaggi: 220
Iscritto: 15/01/2008

Segnala al moderatore
Postato alle 17:24
Domenica, 27/01/2008
Ti ringrazio !!:k:

PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo