Rechercher une chaine de caractère dans un texte

Résolu
Signaler
Messages postés
27
Date d'inscription
lundi 4 octobre 2004
Statut
Membre
Dernière intervention
3 novembre 2004
-
Messages postés
27
Date d'inscription
lundi 4 octobre 2004
Statut
Membre
Dernière intervention
3 novembre 2004
-
Bonjour!

Je suis tout à fait nouveau au monde c++ et je commence par un gros travail....
Je souhaite pour commencer, pouvoir rechercher un paramètre et l'affecter à une variable.

En fait je reçois du texte sur une variable CString et à partir de ce texte il faut trouver le mot "Session :". J'aurais donc besoin du paramètre qui suit le mot "Session".

Exemple :
Session : 3212322332
C'est le nombre qui m'interesse.
Pour information, après ce nombre il ya un CR(retour à la ligne)

Merci d'avance à tous ceux qui veulent bien m'aider!!!
haffa

8 réponses

Messages postés
27
Date d'inscription
lundi 4 octobre 2004
Statut
Membre
Dernière intervention
3 novembre 2004

Salut!

Merci déjà à tout ceux qui m'ont répondu!

Bon, j'ai essayé ces deux lignes de code :

CString s = "Session : 3212322332";
char* p = strstr((LPCTSTR)s, "Session :") + 10;

ça marche bien, mais le problème c'est qu'il prend tout le reste du fichier text et ne s'arrête pas à la fin des 10 caractères.

Comment faire??!

haffa
Messages postés
351
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
12 août 2009

Tu peux utiliser la fonction Find de la classe CString.
Ou encore reconstituer chaque mot de ton texte avec GetAt(int index) jusqu'à ce que tu trouve le tien. Le tout c'est d'avoir l'index de la position de ton mot dans ton texte.

A+
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
'lo

ce pb a été résolu ds mes BString

donc regarde le code de

scinde,
ou/et
checkIn

selon ton besoin

++

Magic Nono: l'informagicien! 8-)
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
10
Salut
CString s =  "Session : 3212322332";
char* p = strstr((LPCTSTR)s, "Session :")  + 10;
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
10
int i = atoi(p);
Messages postés
27
Date d'inscription
lundi 4 octobre 2004
Statut
Membre
Dernière intervention
3 novembre 2004

C'est tout bon merci!!
J'ai utilisé ce qui suit pour ceux qui sont interêssés :

const int MAX = 19;
char number [MAX];
char* pnumber = strstr((LPCTSTR)strRecvd, "Session: ") + 9;
strncpy( number, pnumber, 19);
number[19]='\0';

// 19 représente le nombre des chiffres à prendre après le terme Session

haffa
Messages postés
27
Date d'inscription
lundi 4 octobre 2004
Statut
Membre
Dernière intervention
3 novembre 2004

Autre problème !!

Je cherche maintenant à insérer la variable number dans une chaine de caractères que je définit. Exemple :

" SETUP %d", number"

mais il ya des conflits au niveau des types de variables!!!!
J'utilise la classe CString si jamais.

haffa
Messages postés
27
Date d'inscription
lundi 4 octobre 2004
Statut
Membre
Dernière intervention
3 novembre 2004

Ce probème est résolu!

Merci!

haffa