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... )
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
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
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
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
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager