Bonjour,
Je viens de decouvrir un probleme avec les CFile, je ne peux pas ecrire de caractere 0x00. Ils sont systematiquement remplaces par 0x0D 0x0A Comment est-ce que je peux faire ?
Bonjour,
Je viens de decouvrir un probleme avec les CFile, je ne peux pas ecrire de caractere 0x00. Ils sont systematiquement remplaces par 0x0D 0x0A Comment est-ce que je peux faire ?
salut,
ton CFile est en mode CFile::typeBinary ? (je ne pense pas... )
j'ai essaye mais cela ne change rien... Or dans la doc il y a marque que cela ne peut etre utilise que dans une classe derivee... Et le je ne comprends pas.
Dans les deux cas j'obtiens la suite d'octets suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 CFile MyFile1, MyFile2; char Buff[10] = {{0x31},{0x31},{0x31},{0x31},{0x00},{0x00},{0x31},{0x31},{0x31},{0x31}}; MyFile1.Open("c:\\temp\\toto1.txt", CFile::modeCreate | CFile::modeWrite | CFile::shareExclusive, NULL); MyFile2.Open("c:\\temp\\toto3.txt", CFile::modeCreate | CFile::modeWrite | CFile::shareExclusive | CFile::typeBinary, NULL); MyFile1.Write(Buff, sizeof(Buff)); MyFile2.Write(Buff, sizeof(Buff)); MyFile1.Close(); MyFile2.Close();
31 31 31 31 0D 0A 0D 0A 31 31 31 31
comment l'obtiens-tu ? à la relecture ?
comment relis-tu ?
Avec pspad editor.... c'est un editeur hexa decimal gratuit
j'ai fait ce petit test, ca marche bienà la relecture aussi et en l'éditant avec Visual C++ aussi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 CFile f1 ("c:\\test.txt", CFile::modeCreate | CFile::modeWrite | CFile::typeBinary ); BYTE buffer[10] = {1,0,0,1,1,0}; f1.Write(buffer, 6 * sizeof(BYTE)); f1.Close();
d'ailleurs, en testant directement avec ton code, cela fonctionne aussi ...
es-tu sur que ca vient pas de ton éditeur gratuit ?
un conseil detruit ton fichier ...
et retest
Ok, j'ai fais le test que tu me dis et cela fonctionne. Si par contre je remplace tes 1 par 0x01 et tes 0 par 0x00, ben il remplace a nouveau les 0x00 par des 0x0D 0x0A
Envoyé par nico-pyright(c)
AAAAAAAAAAHHHH la vache, si j'ouvre le fichier texte en hexa avec visual et non pas pspad, il y a bien des 00 !!!! et non pas des 0D 0A, meme sans mettre mode binary
Merci beaucoup a vous deux !
si on ne peut plus faire confiance aux outils gratuits...Envoyé par barthelv
Partager