Oppure

Loading
25/01/08 14:53
Dark_Limit
Ciao a tutti! Avrei un problema..dovrei cercare in un file di testo una parola sottolineo parola(quindi non una frase)..mi spiego meglio : mettiamo che nel mio file di testo ci sia scritto questo "ciao come stai?" quello che mi chiedo è posso ricevere solo la parola "stai" ?
Grazie anticipatamente !
Ultima modifica effettuata da Dark_Limit 25/01/08 14:55
aaa
25/01/08 18:02
gantonio
Ovviamente sì ... apri il file, leggi parola dopo parola finche' non trovi la tua ...
aaa
25/01/08 18:06
Dark_Limit
Mi potresti dire gentilmente la funzione che legge parola dopo parola?
aaa
25/01/08 18:15
Overflow
ciao cosi dovrebbe funzionare:
#include <stdio.h>
#include <string.h>

int main()
{
char txt[1024]={"0,0"};
char parole[255][255]={"0,0"};
FILE *fp;
int i, n, m;
fp = fopen("percorso\del\file","r");

for(i=0; ((txt[i]=getc(fp)) != EOF);i++)
	;

for (int y=0, n=0, m=0; y!=i;y++,m++)
{
	if (txt[y]==' ')
	{
		n++;
		m=-1;
	}
	else
	{
		parole[n][m]=txt[y];
	}
}


}


questo codice legge un file e salva tutte le lettere in un array, poi successivamente salva in una matrice le parole. Ora devi semplicemente verificare se c'è tra gli elementi della matrice la parola che ti interessa.
ciao.

... nel caso non sapessi confontare due stringhe puoi usare la funzione strcmp(str1,str2).
Ultima modifica effettuata da Overflow 25/01/08 18:22
aaa
25/01/08 18:25
Dark_Limit
ciao..intanto grazie mille per il codice postato!!
volevo dirti una cosa..quando inserisco tra gli apici la parola da cercare(correggimi se sbaglio) -->if (txt[y]==' ') non me la trova (ho messo una messagebox per verificarlo) cosa posso fare ?
aaa
25/01/08 18:46
gantonio
Non e' necessario memorizzare il file e cercare in memoria ... secondo le specifiche, basta cercare la parola mentre si legge il file

int main() 
{
  char parolacercata[200] = "parola";
  char parola[200];
  FILE *fp; 

  fp = fopen("file.txt","r"); 

  while(1)
  {
    if(fscanf(fp, "%s", parola)==EOF) break;
	
    if(strcmp(parola, parolacercata)==0)
    {
      printf("Parola trovata\n");
      break;
    }
  }

  fclose(fp);
}  
Ultima modifica effettuata da gantonio 25/01/08 18:46
aaa
25/01/08 18:51
Overflow
prima t ho dato il codice per metà, cioè ti ho dato un codice che ti permette di salvare le parole del file in una matrice.
Comunque per verificare se c'è la parola che vuoi tu basta fare cosi:
#include <stdio.h>
#include <string.h>

int main()
{

char txt[1024]={"0,0"};
char parole[255][255]={"0,0"};
FILE *fp;

int i, n, m;

fp = fopen("C:\prova.txt","r");

for(i=0; ((txt[i]=getc(fp)) != EOF);i++)
	;

n =0;
m=0;
for (int y=0, n=0, m=0; y!=i;y++,m++)
{
	if (txt[y]==' ')
	{
		n++;
		m=-1;
	}
	else
	{
		parole[n][m]=txt[y];
	}
}

//questo codice che ti sto scrivendo ora verifica se la parola ciao è presente
for (int v=0; v<n;v++)
{
if (strcmp("ciao",parole[v])==0)
{
	//parola trovata
}
}
}


ciao
aaa
25/01/08 18:53
Overflow
Postato originariamente da gantonio:

Non e' necessario memorizzare il file e cercare in memoria ... secondo le specifiche, basta cercare la parola mentre si legge il file

int main() 
{
  char parolacercata[200] = "parola";
  char parola[200];
  FILE *fp; 

  fp = fopen("file.txt","r"); 

  while(1)
  {
    if(fscanf(fp, "%s", parola)==EOF) break;
	
    if(strcmp(parola, parolacercata)==0)
    {
      printf("Parola trovata\n");
      break;
    }
  }

  fclose(fp);
}  

:k: questo codice è di granlunga migliore del mio.
aaa