Ce code est déposé en réponse à une question d'un forum.
http://www.cppfrance.com/forum.v2.aspx?ID=372070&nb=1
Dans un fichier de type CSV (c'est-à-dire, chaque ligne étant composé de plusieurs champs), le but est de rechercher une chaîne de caractères dans le premier champ.
Le concept global :
- lecture du fichier ligne par ligne ;
- découpage de chaque ligne en fonction d'un séparateur (ici, un espace) ;
- stockage des informations de la ligne dans une liste chaînée de structures d'informations.
- fermeture du fichier.
- exemple de recherche de chaîne de caractère.
La limite de ce code tient à l'espace de mémoire disponible, puisque le fichier lu est stocké sous forme de liste chaînée.
Conclusion :
Pour répondre précisément à la question du forum, l'exemple pris correspond exactement à la question.
Bien évidemment, la structure contenant les informations est aisément modifiable au cas où...
Compilable à peu près partout.
Merci de me notifier les probables bugs et erreurs, ou toute autre question.
19 janv. 2005 à 22:20
Sinon, à priori ça fuit aussi dans split, y''a un strdup qui ne semble pas être free.
19 janv. 2005 à 22:15
sinon strtok_r pour le réentrant
et strsep pour être à la mode BSD ;-)
17 janv. 2005 à 18:26
17 janv. 2005 à 16:12
17 janv. 2005 à 16:07
Je pense aussi que ce n'est pas une bonne habitude car bosse avec une variable implicite unique et il y a risque de corruption sur des appels simultanes (multi thread par exemple). On obtient la meme chose sans risque avec strstr().
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.