Page 1 sur 1
Ecrire dans un fichier en binaire
Publié : sam. 18/août/2012 16:39
par microdevweb
Bonjour,
Voila ma question, je dois écrire dans un fichier des informations de type texte, entier ect. Si il est vrai que la solution la plus simple est d'écrie de façon classique. Les informations pourrons être lue par tous le monde, je trouve plus professionnel que le fichier contienne plutôt des caractère de ce type E@€Q@ €E@0O.
Quel est la meilleur méthode pour écrire mes infos de cette manière.
Merci de vos réponses.
Re: Ecrire dans un fichier en binaire
Publié : sam. 18/août/2012 16:56
par G-Rom
Tout dépends des données à écrire, écrire en binaire ne veut rien dire, même écrire de façon "classique" écrit en binaire dans ton fichier.
ecrire bit par bit directement dans un fichier n'est pas possible.
il faut passer par des allocations de mémoire , écrire dedans , puis copié cette allocation de mémoire dans le fichier , de l'ascii restera de l'ascii...
ex:
Code : Tout sélectionner
*myData = AllocateMemory( 4 * 32 )
PokeC(*myData + 0 , Asc("B")) ; <--- lisible
PokeC(*myData + 1 , Asc("o")) ; <--- lisible
PokeC(*myData + 2 , Asc("n")) ; <--- lisible
PokeC(*myData + 3 , Asc("j")) ; <--- lisible
PokeC(*myData + 4 , Asc("o")) ; <--- lisible
PokeC(*myData + 5 , Asc("u")) ; <--- lisible
PokeC(*myData + 6 , Asc("r")) ; <--- lisible
PokeC(*myData + 7 , Asc(".")) ; <--- lisible
PokeI(*myData + 8 , 65535) ; <--- ilisible
PokeI(*myData + 12 , 247) ; <--- ilisible
PokeI(*myData + 16 , 829) ; <--- ilisible
PokeI(*myData + 20 , 212) ; <--- ilisible
CreateFile(0,"C:\out.txt")
WriteData(0,*myData,MemorySize(*myData))
CloseFile(0)
End
Re: Ecrire dans un fichier en binaire
Publié : sam. 18/août/2012 17:20
par Atlante
Au pire tu cryptes ton texte avec un mot de passe cf tutos cryptage avec XOR (tuto pas fini mais code compréhensible) :
http://www.purebasic.fr/french/viewtopi ... 21&t=10780
Re: Ecrire dans un fichier en binaire
Publié : dim. 19/août/2012 15:08
par microdevweb
Merci pour ces infos, si je comprend bien toutes valeur entre 0 et 255 sera convertie par l'éditeur de texte et toutes autres valeur ne sera pas lue. Ben voila je met la valeur ASCII en négatif et la reconverti avec ABS. Seul petit soucis 2 octets au lieu d'un mais enfin.