cs_JAYDEN
Messages postés4Date d'inscriptiondimanche 2 décembre 2007StatutMembreDernière intervention22 avril 2009
-
17 avril 2009 à 22:16
cs_JAYDEN
Messages postés4Date d'inscriptiondimanche 2 décembre 2007StatutMembreDernière intervention22 avril 2009
-
20 avril 2009 à 20:36
Bonjour,
Désolé de vous déranger mais dans le cadre d'un projet j'ai besoin a un moment donner de parser une suite de binaire et de les stocker dans un tableau.
J'ai vraiment besoin de votre aide parce que ca me bloque depuis un moment. Je n’arrive pas à trouver la solution.
Les données que je reçois sont hexadécimales et ont toujours la même forme:
Une première partie qu’on appellera requête et qui contient :
Un code annonçant le début de la séquence : 0x5C (caractère \),2 code ASCII (représentant le type de requête) ,2 octets (non ASCII).
Les deux octets de fin représentent la taille que fera la partie data qui suit la partie requête.
Exemple :
String \ F Z 5
Hex. 5C 46 5A 00 05
Ici la partie donnée aura donc une taille 5.
Dans la partie data qui contiendra des données on a :
Cette fois au début de chaque séquence de données on retrouve le code 23 symbole #,2 code ASCII (représentant le type de donnée) ,2 octets (non ASCII)..Et les deux octets de fin représente la taille de la donnée a traité.
Exemple :
String. # F I 5
Hex 23 46 49 00 05
Ce qui veut dire que des données de taille 5 suivront cette séquence.
Un exemple de séquence complète en hexadécimale serait (j’ai enlevé la partie donnée de cette séquence dans l’exemple hexadécimale qui sera dans ce cas ABCDE et qui viendra à la fin de la dernière séquence et que je mettrai juste dans la traduction string) :
5C 46 49 00 0A 23 46 4E 00 23 46 49 00 05
Qui donnerait en string:
\FI10#FN0#FI5ABCDE
Je voudrais stocker dans un tableau le parsage de ces données. Il faudrait donc pour résumer reconnaître la partie requête commençant par 5C(\) et la stocké reconnaître la taille de la partie data dans la partie requête. En fonction de cette taille, traité la partie donnée. En remarquant le code hexa 23 (#) annonçant le début d’une séquence de données. Et la taille de la donnée qui suivra le code séquence et la stockée elle aussi. Dans la partie données il ya plusieurs données qui peuvent se suivre mais il ya une seule partie requête. J’espère ne pas avoir été trop confus et vous remercie d’avance pour vos aides.
cs_JAYDEN
Messages postés4Date d'inscriptiondimanche 2 décembre 2007StatutMembreDernière intervention22 avril 2009 20 avril 2009 à 19:28
Bonjour,
Voici la fonction que j’ai commence a écrire.Mais je pense quil y a plus simple et que je ne prends pas tout en compte.
J’aurai besoin d’aide pour faire quelque chose qui fonctionne mieux.
bool parse( int* tab )
{ int k=0;
int *rqst= NULL;
int **data= NULL;
rqst = new int[20];
data = new int[20][20];
for (int i =0;i<5;i++)
{
rqst[i]= tab[i];
}
for (int i =0;i<tab[4];i++)
for (int j =0;j< 4+data[k][4];j++)
{ int i;
int j;
data[k][j]=tab[i];
if(data[k][j]== 23)
{
k++;
j=0;
}
}
}