Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Funzione di ricerca in un file di testo.
Forum - C/C++ - Funzione di ricerca in un file di testo.

Avatar
psychotic.prankster (Normal User)
Newbie


Messaggi: 1
Iscritto: 09/09/2010

Segnala al moderatore
Postato alle 22:44
Giovedì, 09/09/2010
Salve ragazzi, mi sono iscritto a questo forum appositamente per chiedere a persone più esperte di me un modo per risolvere il mio problema.
Sto facendo un semplice parogramma per gestire un file.
Il programma comprende scrittura su file, lettura del file, ricerca all'interno del file e modifiche del file (parte in cui non mi sono ancora cimentato).

Il mio problema è:
come fare un funzione che ricerchi all'interno del file una stringa di caratteri data dall'utente, di qualsiasi lunghezza (a meno che non sia più grande del file stesso ovviamente) e contenente qualsiasi carattere? (e che possibilmente la indichi all'utente)

per la cronaca, proprio quando credevo di essere sulla buona strada mi sono accorto di una cosa:
esempio:
devo cercare la parola "zazao".

nel file vi è una riga con scritto:
"questa è la parola zazazao"

ora... la funzione di ricerca che stavo facendo non mi consentirebbe di scovare la parola zazao nella riga in questione, in quanto scoverebbe "zaza" (inizio parola) e troverebbe una z subito dopo. andando avanti con l'esecuzione trovrebbe solo il restante "zao", lasciandosi così indietro una "za" fondamentale.

Insomma, non voglio annoiarvi. Ma ciò che devo fare è una funzione (in C) che effettui una ricerca nel documento proprio come fanno i comuni blocco note, gedit, eccetera...

ps: scusate la mia niubbitudine. 8-|

Ultima modifica effettuata da psychotic.prankster il 09/09/2010 alle 22:45
PM Quote
Avatar
GuglielmoS (Ex-Member)
Pro


Messaggi: 114
Iscritto: 27/11/2009

Segnala al moderatore
Postato alle 0:11
Venerdì, 10/09/2010
Utilizza la funzione strstr (http://www.cplusplus.com/reference/clibrary/cstring/strstr/).
Esempio:
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <string.h>
  3. ...
  4. if (strstr(stringa_in_cui_cercare,stringa_da_cercare))
  5.   printf("Trovata!");
  6. else
  7.   printf("Non trovata!");
  8. ...


Ciao GuglielmoS


La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
--Isaac Asimov
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 950
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 0:16
Venerdì, 10/09/2010
Analizza il file riga per riga.
Suddividi ciascuna riga in tante stringhe lunghe quanto la stringa da confrontare,
I caratteri che avanzano, li "aggiungi"  alla riga successiva.


Nulla va più veloce della luce, quindi rilassati.
PM Quote
Avatar
paoloricciuti (Ex-Member)
Pro


Messaggi: 137
Iscritto: 27/04/2010

Segnala al moderatore
Postato alle 12:44
Venerdì, 10/09/2010
Oppure ancora devi analizzare comunque carattere per carattere tutto il file. Questo può risultare davvero lungo in alcuni casi

Esempio:

Parola da cercare: ciao
File di testo: ciaaciciciaiciauciaciciao

Però assicura di trovare la parola.


Member paoloricciuti= new Member();
PM Quote