Bonjour tout le monde
mon message sera un peu long, maisje vais vous mettre dans mon sujet pour que vous puissiez comprendre mon objectif.
en effet je travaille mon sujet de PFE sur une pointeuse biométrique . dans cette pointeuse , ce trouve un journal (fichier log ) dans lequel sont enregistrés toutes les évènement durant la journée pour la pointeuse : ce fichier contient au maximum 8000 lignes chaque ligne compotre 64 octets dans lequels on trouve :
la date , l'heure du pointage, nom de la base de données biométrique (mémoire de la pointeuse) , identifiant de celui qui vient de pointer comme l'indique les ligne suivantes :
01/02/10 06:02:44,IDENT,OK,0,bioa,G999998,0,0,0.1,447,0,0,0,0,0
01/02/10 06:39:20,IDENT,OK,0,bioa,G999998,0,0,0.1,447,0,0,0,0,0
01/02/10 06:58:59,IDENT,OK,0,bioa,G999968,0,0,0.1,422,0,0,0,0,0
01/02/10 06:59:05,IDENT,OK,0,bioa,G999998,0,0,0.1,447,0,0,0,0,0
01/02/10 07:29:12,IDENT,OK,0,bioa,G542501,0,0,0.1,143,0,0,0,0,0
01/02/10 07:39:42,IDENT,OK,0,bioa,G999975,0,0,0.1,427,0,0,0,0,0
01/02/10 07:42:55,IDENT,OK,0,bioa,G545684,0,0,0.1,317,0,0,0,0,0
01/02/10 07:53:33,IDENT,OK,0,bioa,G545685,0,0,0.1,318,0,0,0,0,0
01/02/10 07:55:41,IDENT,OK,0,bioa,G545578,0,0,0.2,246,0,0,0,0,0
le manuel me permet de télécharger les lignes de ce fichier , cependant ; ces lignes m'arivenet non en forme texto mais sour leur formes binaire de 64 octets chacun pour une ligne mais concaténés ci joint je vais vous poster comment les messages m'arrivent dans mon buffer dans mon code C ( j'extrait le données grace au protocole tcp donc j'utilise les socket). voila comment les données m''arrivent
1903101012160\0bioa\0\0\0\0\0\0\0\0\0\0\0G544531\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\323\0\0\0\0\0\0\0\0001903101016060\0bioa\0\0\0\0\0\0\0\0\0\0\0G545728\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\1l\0\0\0\0\0\0\0\0001903101020410\0bioa\0\0\0\0\0\0\0\0\0\0\0G360032\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0U\0\0\0\0\0\0\0\0001903101020450\0bioa\0\0\0\0\0\0\0\0\0\0\0G545600\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\1\'\0\0\0\0\0\0\0\0001903101020480\0bioa\0\0\0\0\0\0\0\0\0\0\0G545758\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\1\201\0\0\0\0\0\0\0\0001903101023530\0bioa\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\r\377\377\1\0\0\0\0\0\0\0001903101023540\0bioa\0\0\0\0\0\0\0\0\0\0\0G360024\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0Q\0\0\0\0\0\0\0\0001903101028480\0bioa\0\0\0\0\0\0\0\0\0\0\0G360872\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7\0c\0\0\0\0\0\0\0\0.
je vais vous détailler plus le contenu de chaque 64 octet
prenons les 64 premiers octets
on
1903101012160\0bioa\0\0\0\0\0\0\0\0\0\0\0G544531\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\323\0\0\0\0\0\0\0
j'ai
190310101216 : la date et l'heure ( 19/03/10 10:12:16)
0 code action
bioa : nom de la base ca c'erit sur 15 octet donc le reste du champ nom de la base se comlète par des zéros
G544531 : l'identifiant avec ce champ sur 20 octet donc les autres données se compétent par des zéros
les autre champls : champls supplémentaire envoyé dans le but d'avoir une strucutre fixe de 64 octets
donc mes questions sont :
1) y a il une méthode qui me permet d'extraire les données du buffer par 64 octet puis les le mettre dans un tableau apart
2) rendre plus visible le fichier dque je reçoit : c'est à dire je n'ai plus des structures de 64 octet concaténes mais des structures sur des lignes?
3) une methode pour formatter les les données pour lés séparer par des virgules ou des espaces ?
sachant que je me bloque depuis deux semaines et je suis dans une boucle vicieuse je n'arrvie pas à trouver un moyen
si vous purvez m'aider les deuxc première étapes me suffit énormèment
Partager