Chaine de caractére+ansistring

gogeta2003 Messages postés 13 Date d'inscription samedi 29 mars 2003 Statut Membre Dernière intervention 23 mai 2005 - 24 mars 2005 à 22:05
NitRic Messages postés 402 Date d'inscription mardi 1 mai 2001 Statut Membre Dernière intervention 15 août 2011 - 25 mars 2005 à 03:32
Salut voici mon problème.





char *donnees;


strcpy(donnees,"e;1.2;45;manu");


typedef struct


{


AnsiString val;


float t; int k;


AnsiString type;


}donnees;





J'ai une chaine de caractére qui contient des valeurs intercalées de
(;) et une structure qui contient des AnsiString, float et un int. Je
voudrais récupérer les caractéres de ma chaine dans ma structure mais
sans les points virgule, c'est-à dire comme l'exemple ci-dessous:


val=e;


t=1.2;


k=45;


type=manu;





Si quelqu'un pouvait m'aider se serait sympa





Merci d'avance

1 réponse

NitRic Messages postés 402 Date d'inscription mardi 1 mai 2001 Statut Membre Dernière intervention 15 août 2011
25 mars 2005 à 03:32
Tu pourais utiliser strtok(), par exemple:

#include <string.h> /* en C */
#include <cstring> /* en C++ */

char * token;
int nItem = 0;
if ( NULL !(token strtok( donnees, ";" )) )
{
do
{
switch ( nItem )
{
case 0:
TaStruct.val = token; break;
case 1:
TaStruct.t = token; break;
case 2:
TaStruct.k = token; break;
case 3:
TaStruct.type = token; break;
default: break;
} while ( ++nItem < 4 && NULL !(token strtok( NULL, ";" )) );
}

if ( nItem != 4 )
{
ERROR - il manque des items
}

c'est très basic comme exemple et comme c'est un exemple, il ne faut pas faire de copy/paste :}. Il n'y à aucune vérification/conversion de donnée dans l'exemple, c'est voulu.

Tu pourais aussi utiliser strchr() ou autre routine du genre, en général c'est assez simple à faire ...

~(.:: NitRic ::.)~
0
Rejoignez-nous