Bonjour � tous
Je vous pr�sente ici mon probl�me car j'aimerais beaucoup comprendre ce qu'il se passe dans mon code et dans l'ex�cution du programme.
J'ouvre un fichier en binaire (fichier de donn�es brutes qui importe peu en soi)
Je d�clare ensuite un buffer d'une taille de 32, puis lis depuis mon stream.
Je d�clare ensuite quelques bool�ens avec des comparaisons entre le contenu du buffer et des constances connues � l'avance
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 char buffer[SIZE_ENTRY]; ifs.read(buffer, SIZE_ENTRY);
Et ici est mon probl�me
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 bool deletedFile = buffer[0] == 0xe5 ; bool longName = buffer[0] == 0x41 || buffer[0] == 0x42;
La variable longName est valide, c'est a dire que la comparaison est bonne.
Mais pas la variable deletedFile
C'est extr�mement �trange, mais apr�s t�tonnement divers, pour qu'elle soit valide, il faut que ma comparaison soit
Code : S�lectionner tout - Visualiser dans une fen�tre � part bool deletedFile = buffer[0] == 0xffffffe5 ;![]()
![]()
![]()
![]()
![]()
![]()
![]()
Pourquoi ?
Jusqu'a pr�sent, toutes mes comparaisons fonctionnaient normalement (tel 0x42 un peu plus haut)
De m�me qu'un dump de la section me confirme qu'il n'y a absolument aucune suite de 0xFF avant cet octet
La section d'octet que je copie est bien la seconde et la troisi�me ligne et le buffer est de toute fa�on �cras� par la lecture mais on peut tout de m�me voir que les octets pr�c�dents sont des 0x00 et non des 0xFF
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3 70 00 74 00 00 00 ff ff 6d 00 00 00 76 00 00 00 e5 4f 4d 4f 50 45 52 53 57 4d 56 20 00 00 36 6b 69 32 69 32 00 00 39 6b 69 32 0c 00 93 a3 7a 00
Merci pour toute explication
PetroleVB
Partager