Tableau

Résolu
blueburry Messages postés 50 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 22 mai 2006 - 1 août 2005 à 11:10
blueburry Messages postés 50 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 22 mai 2006 - 1 août 2005 à 16:22
Bonjour,
g besoin de retirer d'un buffer sBuf une chaine de caracteres ki vient juste apres le mot Subject: et avant le retour de chariot et de la placer ds un autre buffer Subject.
Comment dois-je proceder, voila ce ke g fait mais ca ne marche pas, vous pouvez me dire ou st mes erreurs?
merci.

char subject[1024];
char sBuf [1024];
int j = 0;
int k = 0;



if (memcmp(&sBuf[k], "Subject: ", 9) == 0) //ds sBuf, je detecte le mot "Subject:"

while (sBuf[k] != '\r\n') //\r\n equivaut au retour de chariot en socketing
{
Subject[j] = sBuf[k]; // le contenu de subject recoit le contenu de sBuf
j++;
k++;
}

printf ("le sujet du mail est %s", &Subject[0]);//imprimer le contenu de Subject.

7 réponses

xterminhate Messages postés 371 Date d'inscription dimanche 4 janvier 2004 Statut Membre Dernière intervention 23 septembre 2009
1 août 2005 à 15:26
Une bonne tranche de C++ ne fera pas de mal ici....

#include<string>
#include
using namespace std;

struct extraction_impossible {};

string extraction( string message ) throw ( extraction_impossible )
{
string const debut = "Subject:";
string::size_type marqueur1 = message.find( debut );
string const fin = "\r\n";
string::size_type marqueur2 = message.find( fin );
if( marqueur1 > marqueur2 || marqueur1 string::npos || marqueur2 string::npos )
throw extraction_impossible();
return message.substr( marqueur1+debut.size(), marqueur2-marqueur1-debut.size() );
}

int main()
{
try
{
cout << "Resultat de l'extraction :" << extraction( "Subject:-Bonjour!!!-\r\n" ) << "." << endl;
}
catch ( extraction_impossible const & exception )
{
cout << "Extraction impossible!!!" << endl;
}
}
3
BunoCS Messages postés 15330 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 novembre 2022 103
1 août 2005 à 11:43
char * debut;
char source[50]="string test: blabla";

debut=strstr(source,"test");

Avec cette fonction, tu as un pointeur sur la première occurence de la chaine à chercher ("test" ici). Ensuite, c'est juste une manipulation de chaine:

strcpy(dest,debut+offset);

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
cs_magma Messages postés 198 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 18 mars 2011 1
1 août 2005 à 13:44
//------------------------------------------------------
// Fonction de recheche
//------------------------------------------------------
// message est le contenu du message obtenu avec RETR ou TOP
// champs est le champs à récupérer dans le message
// resultat contiendra le résultat de la recherche
//------------------------------------------------------
int Cherche(char *message, char *champs, char *resultat)
{
int i;
char *p = (char *)strstr(message, champs);

if(p)
{
p += strlen(champs);

for(i = 0; *p != '\n'; i++)
resultat[i] = *p++;

resultat[i] = '\0';
return 1;
}

*resultat = '\0';
return 0;
}

//------------------------------------------------------
// Exemples d'utilisation:
//------------------------------------------------------
char message[???];
char resultat[128];

if(Cherche(message, "From: ", resultat))
printf("\nExpediteur: %s\n", resultat);

Cherche(message, "Subject: ", resultat))
printf("\nSujet: %s\n", resultat);

// Voir ici:
0
cs_magma Messages postés 198 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 18 mars 2011 1
1 août 2005 à 13:46
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
blueburry Messages postés 50 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 22 mai 2006
1 août 2005 à 14:48
salut magam, ta fonction me semble etre efficace mais le probleme est ke je n'ai pas le resultat ki s'imprime.


G juste Sujet: ki s'affiche a l'ecran.
et si je veux k'il m'affiche la chaine depuis Subject: jusk'a la detection du retour de chariot equivalent a "\r\n" en socketing, ke dois-je faire?


merci pr ton aide.
0
blueburry Messages postés 50 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 22 mai 2006
1 août 2005 à 14:53
Excuse-moi, j'avais fait une petite erreur, il affiche bien ce ki vient apres Subject: mais comment je peux faire pr k'il n'imprime ke ce ki vient apres Subject et avant le retour de chariot (\r\n)?

merci
0
blueburry Messages postés 50 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 22 mai 2006
1 août 2005 à 16:22
xterminate, merci bocou ca marche!!!
0